hdfs出现Cannot obtain block length for LocatedBlockt

Posted 逍遙劍客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdfs出现Cannot obtain block length for LocatedBlockt相关的知识,希望对你有一定的参考价值。

问题背景:

导致的原因:是因为2021/0913那天重启的hdfs的服务,flink实时任务还一直往hdfs里面写任务。(有些公司是因为Flume导致的)

\'hdfs出现Cannot

所以这里的”Cannot obtain block length for LocatedBlock”结合字面意思讲应该是当前有文件处于写入状态尚未关闭,无法与对应的datanode通信来成功标识其block长度.

 

定位到了出问题的文件,是2021年09月13号的文件状态还是`openforwrite`, fsck检查结果如下:

检测代码 

hdfs fsck /group/user/tools/meta/hive-temp-table -openforwrite

\'hdfs出现Cannot

解决方案,释放文件租约:

hdfs debug recoverLease -path /group/user/tools/meta/hive-temp-table/test_sony_app_action/20210913/part-0-83 -retries 3

\'hdfs出现Cannot

在重新跑任务,任务正常。

参考以下文章

Cannot obtain block length for LocatedBlock故障分析和解决 - Syn良子 - 博客园 (cnblogs.com)

以上是关于hdfs出现Cannot obtain block length for LocatedBlockt的主要内容,如果未能解决你的问题,请参考以下文章

重启集群造成块丢失问题org.apache.hadoop.hdfs.CannotObtainBlockLengthException: Cannot obtain block length for L

Cannot obtain block length for LocatedBlock故障分析和解决

hive的Caused by: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-572947236

解决mybatis generator警告Cannot obtain primary key information from the database, generated objects may

RVCT编译错误 Cannot obtain license for Compiler

Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "O