HDFS(cloudera 2.0.0-cdh4.2.0)にファイルを追加しているときに、エラーが発生しました。エラーの原因となるユースケースは次のとおりです。
- ファイルシステム(DistributedFileSystem)にファイルを作成します。わかった
以前に作成したファイルを追加します。エラー
OutputStream stream = FileSystem.append(filePath); stream.write(fileContents);
次に、エラーがスローされます。
Exception in thread "main" java.io.IOException: Failed to add a datanode.
User may turn off this feature by setting dfs.client.block.write.replace-datanode-on- failure.policy in configuration, where the current policy is DEFAULT. (Nodes: current=[host1:50010, host2:50010], original=[host1:50010, host2:50010])
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.findNewDatanode(DFSOutputStream.java:792)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeline(DFSOutputStream.java:852)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:958)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:469)
いくつかの関連するhdfs構成:
dfs.replication
2に設定
dfs.client.block.write.replace-datanode-on-failure.policy
true
dfs.client.block.write.replace-datanode-on-failure
に設定し、DEFAULTに設定します
何か案は?ありがとう!