Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2018-12-15, 05:30

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 1 篇文章 ] 
發表人 內容
 文章主題 : Re: 關於mapreduce之hdfs書出問題
文章發表於 : 2015-11-15, 10:53 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
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


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 1 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作