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/*