java操作hdfs報錯java.io.IOException Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try


錯誤原因:

  執行追加的文件中有3個datanode,備份數量設置的是3。在寫操作時,它會在pipeline中寫3個機器。默認replace-datanode-on-failure.policy是DEFAULT,如果系統中的datanode大於等於3,它會找另外一個datanode來拷貝。目前機器只有3台,因此只要一台datanode出問題,就一直無法寫入成功。

解決方法:

  我正要執行追加的文件備份數為3,可是我在hdfs中設置的備份數為1,所以找不到另外的需要備份的DataNode,在java代碼中加入備份數量限制即可,即使用Configuration conf = new Configuration();conf.set("dfs.replication","1");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM