Hadoop大數據(第一天)集羣安裝部署

一、什麼是大數據

基本概念

《數據處理》
在互聯網技術發展到現今階段,大量平常、工做等事務產生的數據都已經信息化,人類產生的數據量相比之前有了爆炸式的增加,之前的傳統的數據處理技術已經沒法勝任,需求催生技術,一套用來處理海量數據的軟件工具應運而生,這就是大數據!java

處理海量數據的核心技術:
海量數據存儲:分佈式
海量數據運算:分佈式node

這些核心技術的實現是不須要用戶從零開始造輪子的
存儲和運算,都已經有大量的成熟的框架來用linux

存儲框架:
HDFS——分佈式文件存儲系統(HADOOP中的存儲框架)
HBASE——分佈式數據庫系統
KAFKA——分佈式消息緩存系統(實時流式數據處理場景中應用普遍)web

運算框架:(要解決的核心問題就是幫用戶將處理邏輯在不少機器上並行)
MAPREDUCE—— 離線批處理/HADOOP中的運算框架
SPARK —— 離線批處理/實時流式計算
STORM —— 實時流式計算算法

輔助類的工具(解放大數據工程師的一些繁瑣工做):
HIVE —— 數據倉庫工具:能夠接收sql,翻譯成mapreduce或者spark程序運行
FLUME——數據採集
SQOOP——數據遷移
ELASTIC SEARCH —— 分佈式的搜索引擎
sql

換個角度說,大數據是: 一、有海量的數據 二、有對海量數據進行挖掘的需求 三、有對海量數據進行挖掘的軟件工具(hadoop、spark、storm、flink、tez、impala......)shell

大數據在現實生活中的具體應用

數據處理的最典型應用:公司的產品運營狀況分析數據庫

電商推薦系統:基於海量的瀏覽行爲、購物行爲數據,進行大量的算法模型的運算,得出各種推薦結論,以供電商網站頁面來爲用戶進行商品推薦編程

精準廣告推送系統:基於海量的互聯網用戶的各種數據,統計分析,進行用戶畫像(獲得用戶的各類屬性標籤),而後能夠爲廣告主進行有針對性的精準的廣告投放windows

二、什麼是hadoop

hadoop中有3個核心組件:
分佈式文件系統:HDFS —— 實現將文件分佈式存儲在不少的服務器上
分佈式運算編程框架:MAPREDUCE —— 實如今不少機器上分佈式並行運算
分佈式資源調度平臺:YARN —— 幫用戶調度大量的mapreduce程序,併合理分配運算資源

三、hdfs總體運行機制

hdfs:分佈式文件系統
hdfs有着文件系統共同的特徵:
一、有目錄結構,頂層目錄是: /
二、系統中存放的就是文件
三、系統能夠提供對文件的:建立、刪除、修改、查看、移動等功能
在這裏插入圖片描述

hdfs跟普通的單機文件系統有區別:
一、單機文件系統中存放的文件,是在一臺機器的操做系統中
二、hdfs的文件系統會橫跨N多的機器
三、單機文件系統中存放的文件,是在一臺機器的磁盤上
四、hdfs文件系統中存放的文件,是落在n多機器的本地單機文件系統中(hdfs是一個基於linux本地文件系統之上的文件系統)

hdfs的工做機制:
一、客戶把一個文件存入hdfs,其實hdfs會把這個文件切塊後,分散存儲在N臺linux機器系統中(負責存儲文件塊的角色:data node)<準確來講:切塊的行爲是由客戶端決定的>

二、一旦文件被切塊存儲,那麼,hdfs中就必須有一個機制,來記錄用戶的每個文件的切塊信息,及每一塊的具體存儲機器(負責記錄塊信息的角色是:name node)

三、爲了保證數據的安全性,hdfs能夠將每個文件塊在集羣中存放多個副本(到底存幾個副本,是由當時存入該文件的客戶端指定的)

綜述:一個hdfs系統,由一臺運行了namenode的服務器,和N臺運行了datanode的服務器組成!

四、搭建hdfs分佈式集羣

4.1 hdfs集羣組成結構:

4.2 安裝hdfs集羣的具體步驟:

1、首先須要準備N臺linux服務器

學習階段,用虛擬機便可!
先準備4臺虛擬機:1個namenode節點 + 3 個datanode 節點

2、修改各臺機器的主機名和ip地址

主機名:hdp-01 對應的ip地址:192.168.33.61
主機名:hdp-02 對應的ip地址:192.168.33.62
主機名:hdp-03 對應的ip地址:192.168.33.63
主機名:hdp-04 對應的ip地址:192.168.33.64

3、從windows中用CRT軟件進行遠程鏈接

在windows中將各臺linux機器的主機名配置到的windows的本地域名映射文件中:
c:/windows/system32/drivers/etc/hosts
192.168.33.61 hdp-01
192.168.33.62 hdp-02
192.168.33.63 hdp-03
192.168.33.64 hdp-04
在這裏插入圖片描述

用crt鏈接上後,修改一下crt的顯示配置(字號,編碼集改成UTF-8):

4、配置linux服務器的基礎軟件環境

 防火牆
關閉防火牆:service iptables stop
關閉防火牆自啓: chkconfig iptables off

 安裝jdk:(hadoop體系中的各軟件都是java開發的)

  1. 利用alt+p 打開sftp窗口,而後將jdk壓縮包拖入sftp窗口
  2. 而後在linux中將jdk壓縮包解壓到/root/apps 下
    在這裏插入圖片描述
  3. 配置環境變量:JAVA_HOME PATH
    vi /etc/profile 在文件的最後,加入:
export JAVA_HOME=/root/apps/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
  1. 修改完成後,記得 source /etc/profile使配置生效
  2. 檢驗:在任意目錄下輸入命令: java -version 看是否成功執行
  3. 將安裝好的jdk目錄用scp命令拷貝到其餘機器
  4. 將/etc/profile配置文件也用scp命令拷貝到其餘機器並分別執行source命令

 集羣內主機的域名映射配置
在hdp-01上,vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.33.61   hdp-01
192.168.33.62   hdp-02
192.168.33.63   hdp-03
192.168.33.64   hdp-04

而後,將hosts文件拷貝到集羣中的全部其餘機器上
scp /etc/hosts hdp-02:/etc/
scp /etc/hosts hdp-03:/etc/
scp /etc/hosts hdp-04:/etc/

若是在執行scp命令的時候,提示沒有scp命令,則能夠配置一個本地yum源來安裝
一、先在虛擬機中配置cdrom爲一個centos的安裝鏡像iso文件
二、在linux系統中將光驅掛在到文件系統中(某個目錄)
三、mkdir /mnt/cdrom
四、mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom
五、檢驗掛載是否成功: ls /mnt/cdrom
六、三、配置yum的倉庫地址配置文件
七、yum的倉庫地址配置文件目錄: /etc/yum.repos.d
八、先將自帶的倉庫地址配置文件批量改名:

九、而後,拷貝一個出來進行修改

十、修改完配置文件後,再安裝scp命令:
十一、yum install openssh-clients -y

5、安裝hdfs集羣

一、上傳hadoop安裝包到hdp-01
在這裏插入圖片描述
二、修改配置文件
要點提示 核心配置參數:

1)	指定hadoop的默認文件系統爲:hdfs
2)	指定hdfs的namenode節點爲哪臺機器
3)	指定namenode軟件存儲元數據的本地目錄
4)	指定datanode軟件存放文件塊的本地目錄

hadoop的配置文件在:/root/apps/hadoop安裝目錄/etc/hadoop/

  1. 修改hadoop-env.sh
    export JAVA_HOME=/root/apps/jdk1.8.0_60
    在這裏插入圖片描述
  2. 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>
</configuration>
  1. 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name/</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:50090</value>
</property>

</configuration>
  1. 拷貝整個hadoop安裝目錄到其餘機器
    scp -r /root/apps/hadoop-2.8.1 hdp-02:/root/apps/
    scp -r /root/apps/hadoop-2.8.1 hdp-03:/root/apps/
    scp -r /root/apps/hadoop-2.8.1 hdp-04:/root/apps/

  2. 啓動HDFS

所謂的啓動HDFS,就是在對的機器上啓動對的軟件
要點
提示: 要運行hadoop的命令,須要在linux環境中配置HADOOP_HOME和PATH環境變量
vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60
export HADOOP_HOME=/root/apps/hadoop-2.8.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

首先,初始化namenode的元數據目錄
要在hdp-01上執行hadoop的一個命令來初始化namenode的元數據存儲目錄
hadoop namenode -format
在這裏插入圖片描述

配置下etc/profile
在這裏插入圖片描述
在這裏插入圖片描述


 建立一個全新的元數據存儲目錄
 生成記錄元數據的文件fsimage
 生成集羣的相關標識:如:集羣id——clusterID

而後,啓動namenode進程(在hdp-01上)
hadoop-daemon.sh start namenode
在這裏插入圖片描述
啓動完後,首先用jps查看一下namenode的進程是否存在

而後,在windows中用瀏覽器訪問namenode提供的web端口:50070
http://hdp-01:50070

而後,啓動衆datanode們(在任意地方)
hadoop-daemon.sh start datanode

  1. 用自動批量啓動腳原本啓動HDFS

  2. 先配置hdp-01到集羣中全部機器(包含本身)的免密登錄

  3. 配完免密後,能夠執行一次 ssh 0.0.0.0

  4. 修改hadoop安裝目錄中/etc/hadoop/slaves(把須要啓動datanode進程的節點列入)
    hdp-01
    hdp-02
    hdp-03
    hdp-04

  5. 在hdp-01上用腳本:start-dfs.sh 來自動啓動整個集羣

  6. 若是要中止,則用腳本:stop-dfs.sh

五、hdfs的客戶端操做

客戶端的理解

hdfs的客戶端有多種形式:

一、網頁形式
二、命令行形式
三、客戶端在哪裏運行,沒有約束,只要運行客戶端的機器可以跟hdfs集羣聯網

文件的切塊大小和存儲的副本數量,都是由客戶端決定!
所謂的由客戶端決定,是經過配置參數來定的
hdfs的客戶端會讀如下兩個參數,來決定切塊大小、副本數量:
切塊大小的參數: dfs.blocksize
副本數量的參數: dfs.replication

上面兩個參數應該配置在客戶端機器的hadoop目錄中的hdfs-site.xml中配置

<property>
<name>dfs.blocksize</name>
<value>64m</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

hdfs客戶端的經常使用操做命令
一、上傳文件到hdfs中
hadoop fs -put /本地文件 /aaa

二、下載文件到客戶端本地磁盤
hadoop fs -get /hdfs中的路徑 /本地磁盤目錄

三、在hdfs中建立文件夾
hadoop fs -mkdir -p /aaa/xxx

四、移動hdfs中的文件(改名)
hadoop fs -mv /hdfs的路徑1 /hdfs的另外一個路徑2

複製hdfs中的文件到hdfs的另外一個目錄
hadoop fs -cp /hdfs路徑_1 /hdfs路徑_2

五、刪除hdfs中的文件或文件夾
hadoop fs -rm -r /aaa

六、查看hdfs中的文本文件內容

hadoop fs -cat /demo.txt
hadoop fs -tail -f /demo.txt
相關文章
相關標籤/搜索