hdfs出现Cannot obtain block length for LocatedBlockt
Posted 逍遙劍客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdfs出现Cannot obtain block length for LocatedBlockt相关的知识,希望对你有一定的参考价值。
问题背景:
导致的原因:是因为2021/0913那天重启的hdfs的服务,flink实时任务还一直往hdfs里面写任务。(有些公司是因为Flume导致的)
所以这里的”Cannot obtain block length for LocatedBlock”结合字面意思讲应该是当前有文件处于写入状态尚未关闭,无法与对应的datanode通信来成功标识其block长度.
定位到了出问题的文件,是2021年09月13号的文件状态还是`openforwrite`, fsck检查结果如下:
检测代码
hdfs fsck /group/user/tools/meta/hive-temp-table -openforwrite
解决方案,释放文件租约:
hdfs debug recoverLease -path /group/user/tools/meta/hive-temp-table/test_sony_app_action/20210913/part-0-83 -retries 3
在重新跑任务,任务正常。
参考以下文章
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