Hadoop上傳文件時報錯: could only be replicated to 0 nodes instead of minReplication (=1)....


問題

上傳文件到Hadoop異常,報錯信息如下:

org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /home/input/qn_log.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.

解決

1、查看問題節點的進程情況:

DataNode進程沒有啟動

2、查看Hadoop datanode.log信息

2018-08-17 05:48:58,076 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/usr/local/hadoop2.7/dfs/data/
java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop2.7/dfs/data: namenode clusterID = CID-e1a65f22-f0f6-4423-8c2b-03edd2f30766; datanode clusterID = CID-647259e5-0250-4676-8327-a09f8ccd38a7

報錯的信息為,namenode clusterID 與 datanode clusterID 不一致!

分別為:

namenode clusterID = CID-e1a65f22-f0f6-4423-8c2b-03edd2f30766
datanode clusterID = CID-647259e5-0250-4676-8327-a09f8ccd38a7

回想了下,出現這個問題的原因:在於我在重啟Docker容器之后,對HDFS重新做了格式化,導致版本不一致

3、解決:

方法:將DataNode的版本,修改到與NameNode一致

(1)修改dfs/data/current/VERSION文件中,將clusterID的值,改為與namenode的clusterID的值
(2)重啟集群,注意, 勿執行namenode格式化,如下:

$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh

再查一下節點進程

DataNode進程啟動起來了!

再試一下上傳,也OK了


免責聲明!

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



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