怎么解决java.io.IOException: Cannot obtain block length for LocatedBlock的问题
在使用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");
最后,重新编译代码并重新运行。
相关文章