AndyTsai 寫:
請問叢集式mapreduce,當我跑完在hdfs上的資料,要如何把他全部清除,
有時候在連hdfs,如果hdfs上有資料,卻沒把其他node電腦連上,就會無法使用hdfs,
(也就是當我上一步用幾台電腦跑,下一次就要有這些全部電腦連上,不然就會無法使用hdfs)
然後我就必須到全部的node電腦上把所有hdfs上的資料夾手動刪除......把master上的hdfs也刪除
請問這個有解嗎,我是用windoop做的。
以下是我另一個錯誤程式碼,由於我的mapreduce程式只要跑大例子,超過兩小時以上的,幾乎沒有跑玩過,感覺都是連接的節點電腦不穩,死掉就當掉了,不過mapreduce不是有防呆機制,為什麼以下這個錯誤沒辦法把map完全做完呢,請大師們解一下,感謝!
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /user/root/output6/part-r-00000
1. HDFS 是靠「副本(Replication)」來提供可靠度,因此跟您跑的台數有關。若副本個數為 2,當離線的台數高於 2 就有風險。如果您一定要把某台機器離線,可以跑 DataNode 的 Decomission
https://www.google.com.tw/search?q=datanode+decommission若沒事就想把台數變來變去,例如本來是 10 台,只想開 3 台。這樣是容易出問題的。
如果資料不重要,那最簡單的解法是重新 format NameNode,
並把 NameNode 的 namespaceId 改回原本跟 DataNode 一致的數字。
2. MapReduce 的防呆先決條件是 HDFS 處於穩定狀態,
從錯誤訊息看起來,是檔案無法輸出或無法讀取 /user/root/output6/part-r-00000
就像如果你要跑的程式會需要讀取 5 個同學的網芳資料,只要隨便有一個同學要去睡覺關機,程式做防呆,資料不見了,還是沒輒。
- Jazz