記:
下班後洗個澡,趁着昨天寫完僞分佈式,今天繼續就來一波Hadoop完全分佈式的配置。
準備環境
包括昨天的一臺master節點,還需另外準備2臺節點,我還將master也設置成從節點,不僅有namenode而且還有datanode。所以最後的效果應該是,1臺namenode和3臺datanode,其中有一臺節點datanode和namenode共存。因爲窮,我還將secondarynamenode也配置在了master啓動。所以節點master中啓動了secondarynamenode,和namenode還有datanode。這裏我將另外兩臺命名爲node1,和node2。node1和node2都配置好了網絡,安裝了jdk和hadoop(hadoop的配置可以先是僞分佈式的)。安裝方式可以參考上一篇文章,也可以簡單粗暴進行克隆。
同步3臺節點的時間,命令爲:
date -s "2019-08-13 22:38:30"
免密登錄
這次搭建完全分佈式主要是通過master免密登錄到其餘兩臺節點,所以將master的~/.ssh中的密鑰文件id_rsa.pub分發給他們,命令可以爲(以傳給node1爲例子):
scp id_rsa.pub node1:`pwd`/master.pub
然後進到node1,將master.pub裏面的內容直接追加重定向到文件authorized_keys,命令爲:
cat master.pub >> authorized_keys
之後就可以用master連接到node1進行驗證是否免密登錄了,node2的免密登錄配置同理。
Hadoop完全分佈式安裝配置
可以將上一次的hadoop僞分佈式配置文件備份一下,以後想玩僞分佈式的時候可以用。如圖3-1。
然後再進行修改配置:
1)修改文件core-site.xml,改一下存放元數據信息和塊信息,文件內容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/junxi/hadoop/full</value>
</property>
</configuration>
2)修改hdfs-site.xml,主要是修改它的副本數量,由原來的1個副本修改成3個副本,文件內容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
3)修改slaves文件,修改從節點,內容如下:
master
node1
node2
完成以上配置之後,就可以將hadoop的整個包分發給node1和node2節點了,以分發給你node1爲例,命令如下:
[root@master ~]# cd /opt/
[root@master opt]# ls
xige
[root@master opt]# scp -r xige/ node1:`pwd`
順便把master的環境變量配置的文件/etc/profile分發給node1和node2,分發完成後記得要source /etc/profile。之後在master節點中,進行格式化,命令爲:
hdfs namenode -format
格式化成功截圖如3-2。
啓動dfs,命令爲:
start-dfs.sh
通過jps查看各個節點服務啓動情況,根據我一開始的配置設置,master裏面應有服務爲:SecondaryNameNode,NameNode,DataNode;node1和node2只有DataNode。如圖3-3,圖3-4。