225025 发表于 2016-12-9 07:02:58

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
  <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
  
  
  
  
页: [1]
查看完整版本: hadoop datanode 磁盘坏掉之后的解决办法