HDFS集群中DataNode的上線與下線


在HDFS集群的運維過程中,肯定會遇到DataNode的新增和刪除,即上線與下線。這篇文章就詳細講解下DataNode的上線和下線的過程。

背景

在我們的微職位視頻課程中,我們已經安裝了3個節點的HDFS集群,master機器上安裝了NameNode和SecondaryNameNode角色,slave1和slave2兩台機器上分別都安裝了DataNode角色。

我們現在來給這個HDFS集群新增一個DataNode,這個DataNode是安裝在master機器上

我們需要說明的是:在實際環境中,NameNode和DataNode最好是不在一台機器上的,我們這里都放在master上,是因為我們的虛擬機資源有限。

我們現在啟動master、slave1和slave2三台虛擬機,然后啟動HDFS集群,我們在HDFS的Web UI上可以看到有兩個DataNode: 

 

 

 

DataNode上線

在NameNode所在的機器(master)上的配置文件hdfs-site.xml中增加"白名單"配置:

<property>
    <!-- 白名單信息-->
    <name>dfs.hosts</name>
    <value>/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include</value>
</property>

  在master機器上執行下面的命令:

## 創建白名單文件
touch /home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include

  在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include文件中增加如下內容:

slave1
slave2
master

其中,上面的master是新增的DataNode所在的機器
/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/slaves文件中新增:
master

3.然后在NameNode所在的機器(master)上執行如下的命令:

hdfs dfsadmin -refreshNodes

  然后,我們在HDFS的Web UI上查看DataNode的信息:

 

 


可以看出,多了一個狀態為Dead的DataNode

 

 可以看出,多了一個狀態為Dead的DataNode

4.在master機器上啟動DataNode:

hadoop-daemon.sh start datanode

  然后我們刷新HDFS的Web UI的DataNode信息,如下圖:

 

 可以看出,DataNode現在是3個了,master上的DataNode已經啟動起來,並且加入集群中

DataNode的下線

我們現在下線master上的DataNode,步驟如下:

  1. 在NameNode所在的機器(master)上的配置文件hdfs-site.xml中增加"黑名單"配置:
<property>
    <!-- 黑名單信息-->
    <name>dfs.hosts.exclude</name>
    <value>/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude</value>
</property>

  在master機器上執行下面的命令:

## 創建黑名單文件
touch /home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude

  在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude文件中增加如下內容:

master

  其中,上面的master是需要下線的DataNode所在的機器

/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/slaves文件中刪除master

然后在NameNode所在的機器(master)上執行如下的命令:

hdfs dfsadmin -refreshNodes

  然后我們刷新HDFS的Web UI的DataNode信息,如下圖:

 

 這個時候,master上的DataNode的狀態變為Decommission In Progress。這個時候,在master上的DataNode的數據都在復制轉移到其他的DataNode上,當數據轉移完后,我們再刷新HDFS Web UI后,可以看到DataNode的狀態變為Decommissioned,表示這個DataNode已經下線,如下圖: 

 

4. 在master上停止DataNode:

hadoop-daemon.sh stop datanode

 5.刷新DataNode: 

hdfs dfsadmin -refreshNodes

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM