![Uploading Paste_Image_223771.png . . .]
Hadoop集群搭建步驟
一、環(huán)境搭建
- 配置本機(jī)hostname
- 配置java運(yùn)行環(huán)境jdk
- 配置ssh免密碼登錄
- 安裝、配置hadoop
- 測試hadoop
以上過程可以分為2個(gè)大的步驟
- 配置系統(tǒng)環(huán)境以使hadoop能正常運(yùn)行
- 配置hadoop配置文件讓hadoop能正常運(yùn)行
二、為什么需要配置相應(yīng)的軟件
- 本次集群搭建我們希望使用2臺機(jī)器作為集群
一臺機(jī)器作為主節(jié)點(diǎn),共運(yùn)行namenode、SecondaryNameNode、ResourceManager 3個(gè)java守護(hù)進(jìn)程
另外一臺作為slave節(jié)點(diǎn),運(yùn)行DataNode、NodeManager進(jìn)程
其中,master是一個(gè)資源調(diào)度的管理者,假如集群中用于成千上萬的機(jī)器,master就是這些機(jī)器中的管理者,它負(fù)責(zé)怎個(gè)集群的任務(wù)調(diào)度。
Slave作為計(jì)算節(jié)點(diǎn),將會(huì)執(zhí)行master指定的相應(yīng)任務(wù),并通過心跳包報(bào)告任務(wù)進(jìn)度及結(jié)果等等數(shù)據(jù)。
2.在環(huán)境搭建的第一個(gè)大步驟中,配置jdk是因?yàn)閔adoop是一個(gè)以java語言實(shí)現(xiàn)的項(xiàng)目,它需要運(yùn)行在java環(huán)境下,比如namenode、DataNode等等進(jìn)程都是一個(gè)個(gè)java進(jìn)程。
在系統(tǒng)中如果需要查看可以使用jps命令查看。
配置ssh免密碼登錄時(shí)因?yàn)椋琱adoop的每個(gè)進(jìn)程間會(huì)相互調(diào)用、并發(fā)送指令,那么你就能想到在集群工作方式中有兩臺獨(dú)立的計(jì)算機(jī)需要通信的情況,計(jì)算機(jī)A直接給計(jì)算機(jī)B發(fā)送指令,那么計(jì)算機(jī)B需要驗(yàn)證計(jì)算機(jī)A發(fā)送過來的身份信息,如果只是發(fā)送一兩次命令還好我們可以人為的輸入身份信息,但是在hadoop集群調(diào)度的時(shí)候需要頻繁的執(zhí)行這樣的操作.
所以配置ssh免密碼登錄時(shí)為了通過配置讓計(jì)算機(jī)自動(dòng)完成身份驗(yàn)證這個(gè)步驟。
三、搭建集群
- Jdk
首先我們在一臺機(jī)器(master)上配置jdk然后通過vm的克隆公共克隆機(jī)器為slave節(jié)點(diǎn)。
拷貝你下載的jdk,通過tar –zxf 命令解壓(可添加 –C 參數(shù)指定解壓后文件保存路徑,如果不指定默認(rèn)存在壓縮包路徑),如下圖:
然后再通過sudo vim /etc/profil配置環(huán)境變量,如下圖所示
然后通過source /etc/profile將profile寫入系統(tǒng),寫入后需要重啟計(jì)算機(jī),否則關(guān)閉計(jì)算機(jī)后打開其他終端環(huán)境變量不會(huì)生效,可以通過java –version和javac命令測試是否配置成功。
- 克隆機(jī)器
由于我們需要兩臺機(jī)器作為集群,在vm中有克隆機(jī)器的功能,所以我們克隆機(jī)器作為slave節(jié)點(diǎn),克隆完成后需要重新配置機(jī)器的ip地址為slave01的地址master同一局域網(wǎng)的ip即可,可以在master機(jī)器上通過ifconfig查看master的ip地址。
完成后通過ifconfig查看兩臺機(jī)器的ip。如下圖
- ssh免密碼
centos系統(tǒng)自帶了ssh,并且自帶了秘鑰生成工具ssh-keygen,在終端中配置ssh免密碼登錄步驟如下
- 生成秘鑰
- 將秘鑰配置在本機(jī),并且將需要將slave01的ssh公鑰發(fā)送給master節(jié)點(diǎn)
Ssh-keygen –t rsa 生成密匙
ssh-copy-id localhost 將密匙拷貝到authorized_keys
如圖,另外一臺機(jī)器同樣。
這樣就可以通過ssh localhost免密碼登錄本機(jī)了,但是還不能從其他機(jī)器登錄本機(jī),我們就可以通過scp 命令將公鑰發(fā)送給master機(jī)器將公鑰寫入authorized_keys再次發(fā)送給其他slave機(jī)器。如下圖。
這條命名中hadoop是你們master機(jī)器的用戶名,@后面是你master機(jī)器的ip地址,:后面是你想將該文件發(fā)送到的位置,這樣就將文件發(fā)送到master上面了,然后再master機(jī)器上通過cat命令將公鑰追加到authorized_keys,然后在將master的authorized_keys重新發(fā)回給slave,如下圖
這樣兩臺機(jī)器就可以相互通過ssh+ip地址的方式訪問彼此了。
-
hadoop配置文件
在官網(wǎng)下載hadoop后將其解壓,就可以正式配置hadoop了,機(jī)器方式需要配置解壓文件中的etc/hadoop目錄下的6個(gè)文件分別是:
hadoop-env.sh 這里面修改{JAVA_HOME}為你的jdk安裝路徑
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
附上全部配置:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>你想存放的臨時(shí)文件路徑</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
最后將slaves中的localhost刪除,并寫入你的slave節(jié)點(diǎn)的ip地址,這樣就完成了全部配置工作。然后格式化一下hadf的文件系統(tǒng)(多次格式化會(huì)出現(xiàn)集群id不一樣,可以通過刪除core-site.xlm中臨時(shí)文件中文件)
bin/hdfs namenode –format 命令用來格式化hdfs文件系統(tǒng)
完成以上步驟后就可以在master上面通過運(yùn)行sbin目錄下的start-all.sh就可以運(yùn)行hadoop了,運(yùn)行成功后可以通過jps命令查看master和slave機(jī)器的進(jìn)程,如圖