[问题] 在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