1. 程式人生 > >hadoop datanode 磁碟壞掉之後的解決辦法

hadoop datanode 磁碟壞掉之後的解決辦法

之前發了一篇文章:

記錄的是由於開啟了 壞掉磁碟的datanode,導致叢集部分功能無法使用的現象。

上次的解決辦法是 直接暴力kill掉了壞掉磁碟的DataNode && TaskTracker

修復的節點記錄為 slave143

過程如下:

1.下線slave143:

a.修改$HADOOP_HOME/conf/hdfs-site.xml檔案

新增配置 dfs.hosts.exclude

<property> 
   <name>dfs.hosts.exclude</name>
   <value>/opt/hadoop-0.20.2-cdh3u6/conf/excludes</value> 
   <description>Names a file that contains a list of hosts that are not permitted to connect to the namenode.  The full pathname of the
   file must be specified.  If the value is empty, no hosts are excluded.</description>
</property>

b.vi  /opt/hadoop-0.20.2-cdh3u6/conf/excludes

新增下架機器的 ip:port  或者 ip  :

我這裡是 192.168.1.143

具體的資訊 可以通過 hadoop dfsadmin -report查詢到 ,此時節點的

Decommission Status : Normal

c.執行下架的命令:

$HADOOP_HOME/bin/hadoop dfsadmin  -refreshNodes

$HADOOP_HOME/bin/hadoop mradmin  -refreshNodes

d.檢視hadoop dfsadmin -report  在下架成功之前是Decommission Status :  Decommission in progress

成功之後節點資訊是Decommission Status : Decommissioned

我這邊的下架節點的資料量大約用了10T,花費的時間大約是1--2 小時。

c.Decommission Status : Decommissioned  之後 我就刪除了 /opt/hadoop-0.20.2-cdh3u6/conf/excludes

檔案中的 192.168.1.143。然後再去檢視 slave143 上是否還有 TaskTracker 程序 ,如果有則殺掉。

2.修復磁碟

a.umount所有的磁碟

b.fsck 所有的磁碟

c.換掉壞掉的磁碟(如果e2fsck不能修復的話)

d.因為這個節點的資料遺失的太久,並且個別磁碟的資料也無法找回或者需要很大的代價找回  所以我選擇了清空這個機器上所以資料,

 hdfs-site.xml 配置下 dfs.data.dir 指定的資料;

mapred-site.xml配置下  mapred.local.dir 指定的資料

3.節點上架

a.重新整理節點資訊

$HADOOP_HOME/bin/hadoop dfsadmin  -refreshNodes

b.啟動slave143的datanode &&  tasktracker 

$HADOOP_HOME/bin/hadoop-daemon.sh start datanode
$HADOOP_HOME/bin/hadoop-daemon.sh start tasktracker 

c.資料平衡

$HADOOP_HOME/bin/start-balancer.sh -threshold 5