基於Virtual Box增加Hadoop的Slave節點的詳細說明
上次我們已經說明了基於Virtual Box安裝CentOS,並且完成Hadoop的1個namenode(hp-master)和3個datanode(hp-slave1,hp-slave2,hp-slave3)的搭建。
那麼如果我需要增加datanode節點,怎麼操作呢?例如:像Hbase一般要求至少5個節點。下面我們接著之前的說一下增加datanode需要如何操作。
A. 複製環境
我們在Virtual Box中停止Hadoop-Master-Slave3
之後“完全複製”兩個,並重命名為Hadoop-Master-Slave4和Hadoop-Master-Slave5
B. 修改Hadoop-Master-Slave4的環境配置
使用Virtual Box啟動Slave4
- 修改IP
使用 ip a檢視ip發現主機的ip是192.168.168.104(這是複製過來的Slave3的ip)
使用命令進入enp0s8的網絡卡配置,並修改ip為192.168.168.105
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
重啟網路服務 service network restart
再次檢視ip a,已經變成192.168.168.105了
- 修改hostname
修改hostname為hp-slave4
hostnamectl set-hostname hp-slave4
退出重新登入後顯示hostname已經變成hp-slave4
-
修改機器Hosts並同步到各個虛擬機器上
-
重新生成rsa金鑰,並且儲存到公共金鑰authorized_keys裡
ssh-keygen -t rsa cat id_rsa.pub >> authorized_keys
- 同步authorized_keys給其他的虛擬機器,並重新生效
scp /root/.ssh/authorized_keys hp-slave1:/root/.ssh scp
/root/.ssh/authorized_keys hp-slave2:/root/.ssh scp
/root/.ssh/authorized_keys hp-slave3:/root/.ssh scp
/root/.ssh/authorized_keys hp-master:/root/.ssh systemctl restart
sshd.service
*同樣的完成hp-slave5的修改
C. 修改Hadoop-Master-Master的hadoop環境配置
進入Hadoop的配置目錄
cd /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/
修改slaves檔案
vi slaves
新增兩個節點
hp-slave4
hp-slave5
D. 重啟hadoop即可
./start-all.sh
最終的結果
另外:
如果這個過程中發現http://192.168.168.101:50070裡看不到livenode,那麼說明重複format了namenode造成clusterid在namenode與datanode之間不一致。
最簡單的解決方案是,把各虛擬機器的/usr/local/hadoop/裡面,除了hadoop2.8.5的檔案以外的dfs及tmp都刪除了,然後重新格式化namenode的hadoop環境。
進入bin目錄下
./hadoop namenode -format