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

作者: jimkukky (kukky)   2016-04-20 09:32:32
我有三台虛擬機,其中我的程式的演算法需要跑四次的map reduce,
我想問假設我有三個文件,如何分配給三台虛擬機,
讓一台機器只處理一份文件。
在程式碼當中我有設定setNumReduceTask(3),
需要三個reducer,
第一個reducer處理第一份文件,
第二個reducer處理第二份文件,
以此類推,分別能夠讓每台對映執行一個文件!
但是會出現問題,就是當這樣設定時,
會發生第一份文件會分給三臺機器處理,
第二個文件也會分給三臺機器處理,
第三個文件也會分給三個機器處理,
出來的結果會有問題,
所以想請問當中的key值要怎麼設,因此在程式方面要如何寫才好?
或者還是有其他方法能夠讓一台機器只處理一份文件
作者: longlongint (華哥爾)   2016-04-20 10:06:00
輸入檔三行檔名 一台機器算一行map的時候弄?另外如果三個檔案不相關 可以直接跑三次
作者: realmeat (真肉)   2016-04-21 16:14:00
你這問題的點在job tracker sheduler的分配問題另外你的形容有點看不懂,你可以先去了解partitionerkey跟task的關係去看partitionertask跟機器的關係要去看sheduler

Links booklink

Contact Us: admin [ a t ] ucptt.com