Taiwan Hadoop Forum http://forum.hadoop.tw/ |
|
Re: 關於mapreduce之hdfs書出問題 http://forum.hadoop.tw/viewtopic.php?f=7&t=38294 |
第 1 頁 (共 1 頁) |
發表人: | jazz [ 2015-11-15, 10:53 ] |
文章主題 : | Re: 關於mapreduce之hdfs書出問題 |
johnny10229 寫: 您好 jazz大 我想請問一下,我在運算mapreduce過程中想要把結果存起來到同一檔案(EX:.result.txt) 因為我是用迭代式演算法,因此map/reduce會一直循環,所以輸出檔也會一直更新 但是因為reducer分成3台 有可能同一時間運算完都需要寫入結果 所以造成某一台無法開啟result檔案,所以會被蓋過 log檔是顯示"此檔案已被開啟" 請問我該怎麼處理這個問題 ?? 有試過try-catch-finally 但是好像沒作用 附上那部分的code,希望Jazz大大幫幫忙 謝謝 HDFS 是一種 Append Only 檔案系統, 因此原生就不支援同時多個程序寫入同一個檔案(不支援 concurrent write)。 http://www.slideshare.net/dataera/inside-hdfs-append 也因此,若循正統 Hadoop MapReduce 程式寫法, reduce() 函數會自動寫到不同的 output 檔案中。 但您的程式看起來 (1) 不是 Hadoop MapReduce API 規範的寫法 (2) 自行開檔、寫檔到 HDFS 所以遇到這個現象是「正常」。 一般解決這個問題的方式是「改用其他支援 concurrent write 的系統」 例如,寫到資料庫,或者寫到一般 POSIX 的檔案系統(網路芳鄰、NFS 網路磁碟) 供參考~ - Jazz |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |