天天看點

【Hadoop環境搭建】八.Hadoop叢集模式部署

前面介紹的僞分布式是基于單個節點,而完全分布式是基于兩個或兩個以上節點完成Hadoop叢集搭建。

下面基于三個節點完成。

【Hadoop環境搭建】八.Hadoop叢集模式部署

整個虛拟機的部署情況:

(1)HDFS的服務程序主要有三個:namenode,datanode,secondarynamenode

1)我們以第一台機器作為分布式存儲的主節點,也就是namenode所在的節點

2)然後真正存儲資料的datanode分布在三台機器中

3)secondarynamenode是namenode的一個備份放在第三台機器上

(2)關于并行計算的mapreduce程序:

1)resourcemanager是mapreduce的主節點,放在第二台機器中

2)其餘的nodemanager分布在三台機器中

3)historyserver主要用于檢視并行計算裡面的一些日志,運作狀況,放在第一台虛拟機中

由于用叢集模式的話可能有些電腦會帶不動,是以後面的課程我們還是采用僞分布式模式。

8.1 主節點部署

8.1.1 重新解壓

進入app目錄下,重新解壓一個hadoop檔案到其他檔案夾,為了與之前的hadoop僞分布式模式區分,我們給他重命名為hadoop-2.5.0并修改檔案位置

tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz -C /usr/software/
mv hadoop-2.5.0-cdh5.3.6 ~/app/hadoop-2.5.0
           
【Hadoop環境搭建】八.Hadoop叢集模式部署

我們就以hadoop-2.5.0作為叢集進行配置

8.1.2 修改配置檔案

進入hadoop-2.5.0/etc/hadoop目錄下修改一下幾個配置檔案

【Hadoop環境搭建】八.Hadoop叢集模式部署

(1)配置hadoop-env.sh

vi hadoop-env.sh

,修改

JAVA_HOME

為之前那個參數(之前已經設定過)

【Hadoop環境搭建】八.Hadoop叢集模式部署

(2)配置core-site.xml

vi core-site.xml

,在configuration中添加各配置項

【Hadoop環境搭建】八.Hadoop叢集模式部署

臨時檔案目錄位址還是和以前一樣在hadoop-2.5.0中建立一個data/tmp目錄

【Hadoop環境搭建】八.Hadoop叢集模式部署

(3)配置 hdfs-site.xml

vi hdfs-site.xml
           
【Hadoop環境搭建】八.Hadoop叢集模式部署

(4)配置 mapred-site.xml

mv mapred-site.xml.template mapred-site.xml

,将mapred-site.xml.template重命名為mapred-site.xml

vi mapred-site.xml
           
【Hadoop環境搭建】八.Hadoop叢集模式部署

(5)配置 yarn-site.xml

vi yarn-site.xml

,要配置的參數有4個:

1)指定yarn叢集中的老大(就是本機)

2)配置yarn叢集中的重節點,指定map産生的中間結果傳遞給reduce采用的機制是shuffle。

3)日志聚合

4)日志删除的保留時間

【Hadoop環境搭建】八.Hadoop叢集模式部署

(6)配置slaves

vi slaves

,把三台虛拟機的主機名寫進去

【Hadoop環境搭建】八.Hadoop叢集模式部署

8.2 叢集節點分發與啟動

8.2.1 修改/etc/profile檔案

vi /etc/profile
           

因為我們現在的需求是既想保留住Hadoop僞分布式,又想搭建Hadoop叢集環境,這就導緻了一個問題,如果系統變量配置的是僞分布式的環境,每次啟動Hadoop的時候就會啟動僞分布式;如果配置的是叢集環境,每次啟動Hadoop就會啟動叢集模式。為了解決這個問題,我們把/etc/profile中Hadoop環境變量注釋掉,想起啟動Hadoop的時候直接到各自的sbin目錄下啟動即可。

【Hadoop環境搭建】八.Hadoop叢集模式部署

source /etc/profile

,立即執行這個檔案

//同步到其他虛拟機
scp /r /etc/profile [email protected]:~/app  
scp /r /etc/profile [email protected]:~/app
           

然後在虛拟機2和3上使用

source /etc/profile

指令使其生效

同時将hadoop-2.5.0發送到其他兩台虛拟機

scp /r ~/app/hadoop-2.5.0 [email protected]:~/app
scp /r ~/app/hadoop-2.5.0 [email protected]:~/app
           

可以看出在其他虛拟機中有hadoop-2.5.0

【Hadoop環境搭建】八.Hadoop叢集模式部署

8.2.2 格式化

輸入

bin/hdfs

可以看到有格式化檔案

【Hadoop環境搭建】八.Hadoop叢集模式部署

bin/hdfs namenode -format

,格式化

【Hadoop環境搭建】八.Hadoop叢集模式部署

出現以上資訊則表示格式化成功

8.2.3 啟動

(1)在第一台機器上輸入

sbin/start-dfs.sh

【Hadoop環境搭建】八.Hadoop叢集模式部署

可見datanode并沒有啟動

解決方案:

首先關閉dfs啟動程序,

sbin/stop-dfs.sh

然後在三台虛拟機中清空data和logs目錄

進入data目錄,

rm -rf *

進入logs目錄,

rm -rf *

【Hadoop環境搭建】八.Hadoop叢集模式部署

之後在進行格式化和啟動指令即可。

【Hadoop環境搭建】八.Hadoop叢集模式部署

在第二台機器上使用

jps

指令可以看出隻有一個

datanode

,同理第三台有一個

datanode

secondarynamenode

【Hadoop環境搭建】八.Hadoop叢集模式部署

(2)在第二台機器上輸入

sbin/start-yarn.sh

然後可以看出在第二台機器上多了

NodeManager

ResourceManager

,第一台機器和第三台機器上多了

NodeManager

(3)在第一台機器上輸入

sbin/mr-jobhistory-daemon.sh start historyserver

然後可以看出在第一台機器上多了

JobHistoryServer

最後分别在三台虛拟機上使用

jps

指令,可見與最初的部署情況相符合,叢集環境搭建成功

【Hadoop環境搭建】八.Hadoop叢集模式部署
【Hadoop環境搭建】八.Hadoop叢集模式部署
【Hadoop環境搭建】八.Hadoop叢集模式部署

繼續閱讀