本次集羣的搭建是在之前的僞分佈集羣的基礎上實現的,如果沒有搭建好僞分佈集羣,可參看之前的詳細教程:
如果按照以上的步驟成功搭建了hadoop僞分佈集羣,那麼實現真正的集羣搭建就很簡單了。本次是在虛擬機下搭建了1個NameNode節點和3個DataNode節點的集羣(NameNode節點也作爲一個DataNode節點)。
----------------------------------------------------------------------------------------------------
hadoop集羣搭建
1、克隆之前搭建好的僞分佈集羣系統,創建另外兩個節點作爲DataNode節點work02、work03(或者按照同樣的步驟單獨創建也可以)。
2、配置IP地址
按照之前的配置方式配置即可(注意,要使三臺機器在同一個網段裏)。
將work01機器的IP地址配置爲192.168.26.101
將work02機器的IP地址配置爲192.168.26.102
將work03機器的IP地址配置爲192.168.26.103
3、修改機器名
利用命令sudo vi /etc/sysconfig/network
work02機器修改爲work02
將work03機器修改爲work03
4、配置相應的IP地址映射
使用命令sudo vi /etc/hosts
在work01、work02、work03上均配置如下內容
4、配置ssh免密登錄(關鍵步驟)
(1)首先利用命令ssh-keygen -t rsa 在每臺機器上生成密鑰對(work01已經有了,就不要再生成了),如果是克隆的系統,這時候生成會提示已經存在,直接覆蓋即可
(2)然後利用命令 cat id_rsa.pub >> authorized_keys 將各自對應的密鑰公鑰添加到自己的authorized_keys中(詳細步驟可參看之間的教程)
(3)最後將其他機器的id_rsa.pub也添加到當前的authorized_keys中
完成以上步驟後,每臺機器的authorized_keys的內容大致如下:
配置完成後,可以work01機器上使用命令 ssh work02 遠程登錄work02機器,使用exit退出登錄。如果不需要密碼登錄成功,這說明ssh免密登錄成功
5、修改相關配置文件
(1)hdfs-site.xml文件
將其內容修改爲3,我們之前僞分佈集羣配置的是1。現在我們有三臺DataNode節點,這時候就可以設置副本數爲3了。
<configuration>
<property>
<value>dfs.replication</value>
<name>3</name>
</property>
</configuration>
(2)slaves文件
在該文件中添加另外兩個DataNode機器名,之前僞分佈只添加了work01(爲防止出錯,每臺機器都修改吧)
(3)其他文件保持和work01的配置相同即可。
6、找到每天機器上配置的hadoop.tmp.dir路徑下的data文件夾,將其刪除。我這裏是/home/hadoop/app/hadoop-2.4.1/data
然後使用命令hadoop namenode -format初始化集羣
---------------------------------------------------------------------------------------------------------------------
至此,hadoop集羣已經配置成功,可以使用命令start-dfs.sh和start-yarn.sh啓動集羣,或者start-all.sh啓動也可以(不推薦)。
啓動完畢,可以通過以下方式查看集羣是否啓動成功
1、查看啓動的進程
在NameNode節點機器上(work01),可以看到如下進程
而DataNode節點機器上(work02、work03),可以看到如下進程
2、通過web服務查看
瀏覽器輸入http://work01:50070
查看DataNode節點個數
還可以查看詳細的DataNode節點信息
===========================================================
可能會出現DataNode啓動不了的問題
原因可能是NameNode和DataNode的clusterID不一致,造成不一致的原因可能是多次使用hadoop namenode -format 。因爲每次初始化的時候,NameNode都會重新生成clusterID,而DataNode卻只是在最初的時候生成,之後便不再更新