天天看點

Could not obtain block blk_XXX_YYY from any node:java.io.IOException:No live nodes contain current block

錯誤:

    10/12/08 20:10:31 info hdfs.dfsclient: could not obtain block blk_xxxxxxxxxxxxxxxxxxxxxx_yyyyyyyy from any node: java.io.ioexception: no live nodes contain current block. will get new block locations from namenode and retry

原因:

    datanode 有一個同時處理檔案的上限. 這個參數叫 xcievers。如果沒有這一項配置,你可能會遇到奇怪的失敗。你會在datanode的日志中看到xcievers exceeded,但是運作起來會報 missing blocks錯誤

解決方法:

    在conf/hdfs-site.xml裡面的添加如下配置

    <property>

        <name>dfs.datanode.max.xcievers</name>

        <value>4096</value>

        <dedication> datanode 有一個同時處理檔案的上限,至少要有4096</dedication>

    </property>