• 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,无法提交新的任务

  • 相关阅读:
    【转】高级爬虫
    python-基于遗传算法的多三角形拟合图像实例
    python-文件处理
    python-函数式编程与内置函数
    Python-变量、函数及递归
    Python-字符串的拼接与函数
    Python-集合
    Python-列表、元组、字典
    Python-字符串2
    Python-字符串
  • 原文地址:https://www.cnblogs.com/keepthinking/p/10163992.html
Copyright © 2020-2023  润新知