前言node
上一篇介紹了僞分佈式集羣的搭建,其實在咱們的生產環境中咱們確定不是使用只有一臺服務器的僞分佈式集羣當中的。接下來我將給你們分享一下全分佈式集羣的搭建!linux
其實搭建最基本的全分佈式集羣和僞分佈式集羣基本沒有什麼區別,只有很小的區別。web
1)若是是在一臺虛擬機中安裝多個linux操做系統的話,可使用NAT或橋接模式都是能夠的。試一試可不能夠相互ping通!ubuntu
2)若是在一個局域網當中,本身的多臺電腦(每臺電腦安裝相同版本的linux系統)搭建,將所要使用的Ubuntu操做系統的網絡模式調整爲橋接模式。服務器
步驟:網絡
一是:在要使用的虛擬機的標籤上右鍵單擊,選擇設置,選擇網絡適配器,選擇橋接模式,肯定ssh
二是:設置完成以後,重啓一下虛擬機 分佈式
三是:再設置橋接以前將固定的IP取消 oop
桌面版:經過圖形化界面設置的。
服務器版:在/etc/network/interfaces
iface ens33 inet dhcp
#address ...測試
四是:ifconfig獲取IP。172.16.21.xxx
最後試一試能不能ping通
每個要搭建集羣的服務器都須要安裝jdk,這裏就不介紹了,能夠查看上一篇
每個要搭建集羣的服務器都須要安裝hadoop,這裏就不介紹了,能夠查看上一篇。
配置/opt/hadoop/etc/hadoop相關文件
25行左右:export JAVA_HOME=${JAVA_HOME}
改爲:export JAVA_HOME=/opt/jdk
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mip:9000</value> </property> </configuration>
分析:
mip:在主節點的mip就是本身的ip,而全部從節點的mip是主節點的ip。
9000:主節點和從節點配置的端口都是9000
注意:**:下面配置了幾個目錄。須要將/data目錄使用-R給權限爲777。
<configuration> <property> <name>dfs.nameservices</name> <value>hadoop-cluster</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///data/hadoop/hdfs/nn</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///data/hadoop/hdfs/dn</value> </property> </configuration>
分析:
dfs.nameservices:在一個全分佈式集羣大衆集羣當中這個的value要相同
dfs.replication:由於hadoop是具備可靠性的,它會備份多個文本,這裏value就是指備份的數量(小於等於從節點的數量)
一個問題:
dfs.datanode.data.dir:這裏我在配置的時候遇到一個問題,就是當使用的這個的時候從節點起不來。當改爲fs.datanode.data.dir就有用了。
可是官方給出的文檔確實就是這個呀!因此很邪乎。由於只有2.0版本以前是fs
注意:若是在剛解壓以後,是沒有這個文件的,須要將mapred-site.xml.template複製爲mapred-site.xml。
<configuration> <property>
<!-指定Mapreduce運行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
<configuration> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>mip</value> </property> <!-- 指定reducer獲取數據的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>file:///data/hadoop/yarn/nm</value> </property>
分析:
mip:在主節點的mip就是本身的ip,而全部從節點的mip是主節點的ip。
sudo mkdir -p /data/hadoop/hdfs/nn sudo mkdir -p /data/hadoop/hdfs/dn sudo mkdir -p /data/hadoop/hdfs/snn sudo mkdir -p /data/hadoop/yarn/nm
必定要設置成:sudo chmod -R 777 /data
有三臺ubuntu服務器(ubuntu 17.04):
主機名:udzyh1 IP:1.0.0.5 做爲主節點(名字節點)
主機名:server1 IP:1.0.0.3 做爲從節點(數據節點)
主機名:udzyh2 IP:1.0.0.7 做爲從節點(數據節點)
jdk1.8.0_131
hadoop 2.8.1
名字節點、資源管理器:這是在主節點中啓動或關閉的。
數據節點、節點管理器:這是在從節點中啓動或關閉的。
MR做業日誌管理器:這是在主節點中啓動或關閉的。
在主節點:udzyh1中
在從節點:server1中
在從節點:udzyh2中
咱們在主節點的web控制頁面中:http:1.0.0.5:50070中查看到兩個從節點
說明配置成功
配置這個是爲了實現主節點管理(開啓和關閉)從節點的功能:
咱們只須要在主節點中使用start-dfs.sh/stop-dfs.sh就能開啓或關閉namenode和全部的datanode,使用start-yarn.sh/stop-yarn.sh就能開啓或關閉resourcemanager和全部的nodemanager。
1)在全部的主從節點中執行
3)在全部的從節點中執行
在從節點1.0.0.7
4)測試
咱們能夠查看他們是用戶名相同的,因此能夠直接使用ssh 1.0.0.3遠程鏈接
1)在主節點中
打開vi /opt/hadoop/etc/hadoop/slaves
1)在主節點的服務器中執行start-dfs.sh
2)在web監控平臺查詢
3)在主節點的服務器中執行stop-dfs.sh
3)在主節點的服務器中執行start-yarn.sh
4)在web監控平臺查詢到
5)在主節點的服務器中執行stop-yarn.sh
2)主節點和從節點啓動了,可是在主節點的web控制頁面查找不到從節點(linux系統安裝在不一樣的物理機上面)
解決方案:
它不能創建IPv6的鏈接,因此刪除了IPv6以後系統會使用IPv4(在主節點上添加從節點的標識的)
4)在主節點的web控制頁面查詢不到從節點信息(可是使用jps能夠查詢到)
喜歡就點個「推薦」哦!