1. 程式人生 > >基於Virtual Box增加Hadoop的Slave節點的詳細說明

基於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

  1. 修改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了
在這裡插入圖片描述

  1. 修改hostname
    修改hostname為hp-slave4

hostnamectl set-hostname hp-slave4

退出重新登入後顯示hostname已經變成hp-slave4
在這裡插入圖片描述

  1. 修改機器Hosts並同步到各個虛擬機器上
    在這裡插入圖片描述

  2. 重新生成rsa金鑰,並且儲存到公共金鑰authorized_keys裡

ssh-keygen -t rsa cat id_rsa.pub >> authorized_keys

  1. 同步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