随着公司業務的增長,資料量越來越大,原有的資料節點的容量已經不能滿足存儲資料的需求,需要在原有叢集基礎上動态添加新的資料節點。是以,本篇部落格小菌為大家帶來的是HDFS新增節點與删除節點的内容。
準備新節點
1:複制一台新的虛拟機出來
2:修改mac位址以及IP位址
3:關閉防火牆,關閉selinux
4:更改主機名
5:四台機器更改主機名與IP位址映射
6:node04伺服器關機重新開機并生成公鑰與私鑰
7:node04安裝jdk
8:解壓Hadoop安裝包
9:将node01關于Hadoop的配置檔案全部拷貝到node04
服役新節點具體步驟
1.建立dfs.hosts檔案
2.node01編輯hdfs-site.xml添加以下配置
3.重新整理namenode
4.更新resourceManager節點
5.namenode的slaves檔案增加新服務節點主機名稱
6.單獨啟動新增節點
7.浏覽器檢視
8.使用負載均衡指令,讓資料均勻負載所有機器
退役舊資料節點
1.建立dfs.hosts.exclude配置檔案
2.編輯namenode所在機器的hdfs-site.xml
3.重新整理namenode,重新整理resourceManager
4.檢視web浏覽界面
5.節點退役完成,停止該節點程序
6.從include檔案中删除退役節點
7.從namenode的slave檔案中删除退役節點
8.如果資料負載不均衡,執行以下指令進行均衡負載
9.再次檢查浏覽器
将我們純淨的虛拟機(裸機)複制一台出來,作為我們新的節點。
修改mac位址指令
<code>vim /etc/udev/rules.d/70-persistent-net.rules</code>
修改ip位址指令
<code>vim /etc/sysconfig/network-scripts/ifcfg-eth0</code>
關閉防火牆
<code>service iptables stop</code>
關閉selinux
<code>vim /etc/selinux/config</code>
更改主機名為node04
<code>vim /etc/sysconfig/network</code>
四台機器都要添加hosts檔案
<code>vim /etc/hosts</code>
node04伺服器因為改過主機名,是以需要先重新開機使之生效
<code>reboot</code>
node04執行以下指令生成公鑰與私鑰
<code>ssh-keygen</code>
node04執行以下指令将node04的私鑰拷貝到node01伺服器
<code>ssh-copy-id node01</code>
node01執行以下指令,将authorized_keys拷貝給node04
<code>cd /root/.ssh/</code>
<code>scp authorized_keys node04:$PWD</code>
為了友善管理,node04需要統一兩個路徑
<code>mkdir -p /export/softwares/</code>
<code>mkdir -p /export/servers/</code>
然後解壓jdk安裝包,配置環境變量,或将叢集中的java安裝目錄拷貝一份,并配置環境變量。
在node04伺服器上面解壓Hadoop安裝包到/export/servers
node01執行以下指令将Hadoop安裝包拷貝到node04伺服器
<code>cd /export/softwares/</code>
<code>scp hadoop-2.6.0-cdh5.14.0-自己編譯後的版本.tar.gz node04:$PWD</code>
node01執行以下指令,将Hadoop的配置檔案全部拷貝到node04伺服器上面
<code>cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/scp ./* node04:$PWD</code>
在node01也就是namenode所在的機器的/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目錄下建立dfs.hosts檔案
添加如下主機名稱(包含新服役的節點)
在namenode的hdfs-site.xml配置檔案中增加dfs.hosts屬性
node01執行以下指令重新整理namenode
node01執行以下指令重新整理resourceManager
node01編輯slaves檔案,并添加新增節點的主機,更改完後,slaves檔案不需要分發到其他機器上面去
node01執行以下指令編輯slaves檔案,slave 檔案中記錄的節點在叢集啟動時會進行啟動。
在node04伺服器執行以下指令,啟動datanode和nodemanager
重新開機叢集後,打開浏覽器通過url檢視
<code>http://xxxx:50070/dfshealth.html#tab-overview</code>
或
<code>http://xxxx:8088/cluster</code> 【xxxx為namenode節點的ip】
效果如下,發現叢集中多了一個節點說明新增成功!

在node01上執行以下指令:
在namenod的cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目錄下建立dfs.hosts.exclude檔案,并添加需要退役的主機名稱
node01執行以下指令
編輯namenode所在的機器的hdfs-site.xml配置檔案,添加以下配置
在namenode所在的機器執行以下指令,重新整理namenode,重新整理resourceManager
浏覽器通路
<code>http://xxxx:50070/dfshealth.html#tab-datanode</code>【xxxx為namenode所在節點的ip】
等待退役節點狀态為decommissioned(所有塊已經複制完成),停止該節點及節點資料總管。注意:如果副本數是3,服役的節點小于等于3,是不能退役成功的,需要修改副本數後才能退役。
node01執行以下指令,停止該節點程序
namenode所在節點也就是node01執行以下指令删除退役節點
namenode所在節點也就是node01執行以下指令重新整理namenode和resourceManager
namenode所在機器也就是node01執行以下指令從slaves檔案中删除退役節點
&nbspnode01執行以下指令進行均衡負載
我們再次打開浏覽器檢視Hadoop的節點情況,發現node04節點已經成功被删除!
本次的分享就到這裡了,小夥伴們有什麼疑惑或好的建議可以積極在評論區留言,小菌後續還會推出HDFS系列的其他内容,希望大家持續關注小菌ヾ(๑╹◡╹)ノ"!
HDFS系列精彩内容回顧:
《HDFS檔案系統介紹(1)》
《HDFS檔案讀寫流程(2)》
《HDFS特性及缺點分析(3)》
《HDFS的進階指令使用——檔案限額配置(4)》
《HDFS的安全模式與檔案權限檢驗(5)》
《HDFS中Fsimage,Edits詳解(6)》
《HDFS中SecondaryNamenode工作原理(7)》
《HDFS中namenode故障恢複(8)》
《HDFS的shell常用指令大全》