[問題] 在Hadoop環境下,程式設計_分配問題

看板java作者 (kukky)時間9年前 (2016/04/20 09:32), 9年前編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
我有三台虛擬機,其中我的程式的演算法需要跑四次的map reduce, 我想問假設我有三個文件,如何分配給三台虛擬機, 讓一台機器只處理一份文件。 在程式碼當中我有設定setNumReduceTask(3), 需要三個reducer, 第一個reducer處理第一份文件, 第二個reducer處理第二份文件, 以此類推,分別能夠讓每台對映執行一個文件! 但是會出現問題,就是當這樣設定時, 會發生第一份文件會分給三臺機器處理, 第二個文件也會分給三臺機器處理, 第三個文件也會分給三個機器處理, 出來的結果會有問題, 所以想請問當中的key值要怎麼設,因此在程式方面要如何寫才好? 或者還是有其他方法能夠讓一台機器只處理一份文件 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.41.64 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1461115954.A.731.html

04/20 10:06, , 1F
輸入檔三行檔名 一台機器算一行
04/20 10:06, 1F

04/20 10:08, , 2F
map的時候弄?
04/20 10:08, 2F

04/20 10:09, , 3F
另外如果三個檔案不相關 可以直接跑三次
04/20 10:09, 3F
ok,目前我有用別的方法好像可以了,也感謝你! ※ 編輯: jimkukky (118.167.41.64), 04/20/2016 19:45:01

04/21 16:14, , 4F
你這問題的點在job tracker sheduler的分配問題
04/21 16:14, 4F

04/21 16:17, , 5F
另外你的形容有點看不懂,你可以先去了解partitioner
04/21 16:17, 5F

04/21 16:21, , 6F
key跟task的關係去看partitioner
04/21 16:21, 6F

04/21 16:21, , 7F
task跟機器的關係要去看sheduler
04/21 16:21, 7F
嗯我後來有去看partitioner,大概了解怎麼用了感謝! ※ 編輯: jimkukky (36.229.28.124), 04/22/2016 15:41:10
文章代碼(AID): #1N5jmoSn (java)
文章代碼(AID): #1N5jmoSn (java)