HDFS-异常大全-《每日五分钟搞定大数据》

《每日五分钟搞定大数据》公众号:大叔据每周不定时更新

点击看《每日五分钟搞定大数据》完整思惟导图以及全部文章目录node

问题1:Decomminssioning退役datanode(即删除节点)

1.配置exclude:bash

<name>dfs.hosts.exclude</name>  
<value>/data/hadoop/excludes</value>  
复制代码

在/data/hadoop/excludes文件添加要退役的节点ip(可同时退役多个,一个一行)oop

2.配置完后刷新节点大数据

# $HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes 
复制代码

3.查看各节点状态spa

# $HADOOP_HOME/bin/hadoop dfsadmin -report 
复制代码

4.进度可在HDFS的50070可视化界面的Decommissioning处查看3d

Under replicated blocks : 有备份的blocks日志

Blocks with no live replicas : 没有存活备份的blocks(存备份的datanode下线了)code

Under Replicated Blocks In files under construction : 备份数不够的blockscdn

5.另外有暴力的方式:blog

直接停datanode,hadoop的balance机制会自动将备份数不足3份(可配置)的blocks从新备份,注意这个方式只能够一次停一台机器,否则可能会出现missing blocks。

问题2:出现corupt block,missing blocks

1.缘由:

某个节点的datanode的blocks丢失,且没有副本

查看blocks信息以及有问题的blocks:

hdfs fsck / 
复制代码

2.解决办法:

1)如果你中止了datanode且数据还没丢失则重启便可

2)数据丢失且其余节点没有副本则只能将这些blocks清理

hadoop fsck -move|-delete
复制代码

3)出现这种状况能够尝试hdfs dfs -get 下载有问题的文件,若报错则只能用1)2)的方式解决,若能够get下来将文件从新put上去也可解决问题。

问题3:出现invalidate block

1.缘由:

当触发NAMENODE的双活切换(active-namenode给zk的心跳超时会发生) Datanode增量汇报该block-datanode映射给 namenode(切换后的active namenode)的时候,edit log还没从JournalNode同步过来,这时在namenode中已经有了block-datanode映射(从刚才datanode的report中来),可是尚未block-file映射(从edits文件里面来),致使namenode认为这个块不属于任何文件,定义为该块为invalidate block。

这个在后台日志能够查到(后台standby没有彻底变成activenamenode以前,会出现包含 invalidate block 的后台日志。)

edits文件(包含block-file映射): 对于HDFS文件来讲,包含的信息有修改时间、访问时间、块大小和组成一个文件块信息等;而对于目录来讲,包含的信息主要有修改时间、访问控制权限等信息

2.解决办法:

从新上报block信息

hdfs dfsadmin -triggerBlockReport datanode_ip:port
复制代码

评论不能及时回复可直接加公众号提问或交流,知无不答,谢谢 。

欢迎关注大叔
相关文章
相关标签/搜索