怎么解决java.io.IOException: Cannot obtain block length for LocatedBlock的问题

2023-04-08 04:41:00 io java 解决

在使用Hadoop的时候,经常会遇到java.io.IOException: Cannot obtain block length for LocatedBlock的问题。这个问题一般是由于Hadoop的版本问题引起的。

解决方法:

首先,确认Hadoop的版本,如果是Hadoop-2.2.0以下的版本,则需要将hadoop.common.configuration.Configuration替换为org.apache.hadoop.conf.Configuration。

然后,在代码中添加如下配置:

conf.set("dfs.client.block.write.replace-datanode-on-failure.enable", "true");

conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");

最后,重新编译代码并重新运行。

相关文章