点击看《每日五分钟搞定大数据》完整思维导图以及所有文章目录

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

1.配置exclude:

<name>dfs.hosts.exclude</name>
<value>/data/hadoop/excludes</value>  

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

2.配置完后刷新节点

# $HADOOP_HOME/bin/hadoop dfsadmin  -refreshNodes  

3.查看各节点状态

# $HADOOP_HOME/bin/hadoop dfsadmin -report  

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

Under replicated blocks : 有备份的blocks

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

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

5.另外有暴力的方式:

直接停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

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

最新文章

  1. Machine Learning in Action -- Logistic regression
  2. mysql 查看是否存在某一张表
  3. 实现Action(含Action访问ServletAPI)
  4. NSlog警告—— 编译器打印NSInteger类型
  5. Struts2配置文件动态传参
  6. js document
  7. 支付宝App支付~关于它的一些坑
  8. Android破解学习之路(一)——简单的登录破解
  9. redis配置文件详解及实现主从同步切换
  10. 控件篇:CheckedListBox的全选与反选
  11. nginx(二)nginx的安装
  12. 14.并发与异步 - 2.任务Task -《果壳中的c#》
  13. 【tmos】使用joda-time来个格式化时间
  14. Windows系统配置.bat启动spring boot项目jar
  15. C工程 交互 ceph 分布式存储系统
  16. Android 怎样开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)
  17. Qt中 .pro 文件和 .pri 文件简介
  18. 程序------&gt;算法
  19. spring+springMVC,声明式事务失效,原因以及解决办法
  20. golang 创建一个简单的广播echo服务器

热门文章

  1. [Synology] [群晖] 关闭被占用的文件
  2. .net core 在linux系统运行
  3. Linux 安装MongoDB 并设置防火墙,使用远程客户端访问
  4. RHEL7.3安装python3.6.1
  5. tali -f 和 tail -F 之间的区别
  6. unknown host www.baidu.com 解决方法
  7. Innodb存储引擎的缓存命中率计算
  8. 技术分享之AQS——内容提要
  9. 死磕nginx系列--使用nginx做负载均衡
  10. BZOJ5415:[NOI2018]归程(可持久化并查集,最短路)