hadoop 常見問題

一、 ... could only be replicated to 0 nodes, instead of 1

此為hadoop最常見,但也最難debug 的錯誤訊息了,因為即使在怎麼看也看不出個所以然,還以為自己的備份機制弄錯了等...參考方法如下:

    • hadoop 對 local 目錄權限不足

$ chmod -R 777 /tmp/hadoop*

注意: 顯然 755的權限不夠於 hadoop.tmp.dir 資料夾

    • 空間不足

刪掉一些檔案吧

    • datanode 與 namenode 間的連線有問題

檢查網路並用ssh登入測試

    • namenode -format 時有錯

砍掉重練

二、 重開機後hdfs就開不起來了

即使在從開機之前已經下了 bin/stop-all.sh 的指令了,重開機後,直接下 bin/start-all.sh 卻無法把之前的hdfs重建起來...

原因: 請不要用預設值或將 hadoop-site.xml 內的 hadoop.tmp.dir 設定在 /tmp 下,因為重新開機後會清除 /tmp 的資料

解法:

hadoop 0.19 以前:設定在 hadoop-site.xml 內的 hadoop.tmp.dir 到 /var/hadoop

hadoop 0.20 以後:設定在 core-site.xml 內的 hadoop.tmp.dir 到 /var/hadoop

sudo mkdir /var/hadoop

sudo chown USERNAME:USERNAME /var/hadoop

sudo chmod 777 /var/hadoop

三、 完整的砍掉重練步驟

通常hadoop 遇到問題而開不起來,通常只好重新namenode -format ,然而還是會遇到問題,

原因:之前一次的資料沒刪除乾淨,因此再做幾次都是錯,要把之前的錯誤測底刪除才能重獲新生

作法:

/opt/hadoop/bin/stop-all.sh

rm -rf /var/hadoop/*

rm -rf /tmp/hadoop*

rm -rf /opt/hadoop/logs/*