hadoop datanode 磁盘坏掉之后的解决办法

之前发了一篇文章:

http://blog.csdn.net/lxpbs8851/article/details/17241551

记录的是由于开启了 坏掉磁盘的datanode,导致集群部分功能无法使用的现象。

上次的解决办法是 直接暴力kill掉了坏掉磁盘的DataNode && TaskTracker

 

修复的节点记录为 slave143

过程如下:

1.下线slave143:

a.修改$HADOOP_HOME/conf/hdfs-site.xml文件

添加配置 dfs.hosts.exclude

 
   dfs.hosts.exclude
   /opt/hadoop-0.20.2-cdh3u6/conf/excludes 
   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.

 

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

 

 

 

 

你可能感兴趣的:(hadoop)