hdfs的bug纪录, Unexpected block state
Posted keepthinking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdfs的bug纪录, Unexpected block state相关的知识,希望对你有一定的参考价值。
今早遇到一个bug,提交 spark job 失败。说 hdfs 在 safe mode状态,不允许创建和删除文件。
然后发现 hdfs 的日志文件不断滚动,几乎每秒钟100M的速度打日志,当时没有看懂。safe mode 打开关闭了几回,发现主要的问题是下面这条日志:
java.lang.IllegalStateException: Unexpected block state: blk_1073748951_12122 is COMMITTED but not COMPLETE, file=application_1543829391405_0459_1.inprogress (INodeFile), blocks=[blk_1073748951_12122] (i=0)d
翻译:blk_1073748951_12122 坏了,该block属于文件 application_1543829391405_0459_1.inprogress
解决方案:删除该文件,关闭safe mode。
问题推测:我们的 yarn 集群运行在 aws 上,配置了弹性伸缩的策略。 application_1543829391405_0459_1.inprogress 属于一个 spark application 的meta信息。
可能是弹性收缩,也可能是偶然因素,导致 block 数据丢失,于是引发问题:
1. spark application 失败
2. dfs自我修复,疯狂打日志
3. 打开了 safe mode,无法提交新的任务
以上是关于hdfs的bug纪录, Unexpected block state的主要内容,如果未能解决你的问题,请参考以下文章
[Bug0061] RabbitMQ 报错 An unexpected connection driver error occured
Django--bug--__init__() got an unexpected keyword argument 'qnique'
Bug解决LDA() got an unexpected keyword argument ‘n_components‘