MapReduce传递和发出键值对的基本信息。 我需要清楚一点,我们传递的内容和发出的内容。 在这里我的担忧: MapReduce输入和OutPut:
1.Map()方法 - 是否需要单个或列表的键值对并发出什么? 2.对于每个输入键值对,映射器发出什么?相同类型或不同类型? 3.对于每个中间键,减速器将发出什么?是否有任何类型的限制? 4.Reducer接收与相同密钥相关联的所有值。如何按顺序排序或按顺序排序值?该订单是否因运行而异? 5.在随机和排序阶段,在哪个顺序键和值出现?
答案 0 :(得分:5)
在步骤2中任意排序值。 键,值 - mapper和reducer的输出应该是相同的类型,即所有键必须是相同的类型,并且所有值必须是相同的类型。
答案 1 :(得分:0)
Map方法:接收输入(K1,V1)并返回(K2,V2)。也就是说,输出键和值可以与输入键和值不同。
减速器方法:在映射器的输出正确混洗后(同一个键进入相同的减速器),减速器输入为(K2,LIST(V2)),其输出为(K3,V3)。 作为洗牌过程的结果,密钥到达按密钥K2排序的减速器。
如果您想以特定方式订购密钥,可以实现密钥K3的compareTo方法。
Referring your questions:
1. Answered above.
2. You can emit whatever you want as long it consists of a key and a value.
For example, in the WordCount you send as key the word and as value 1.
3. In the WordCount example, the reducer will receive a word and list of number.
Then, it will sum up the numbers and emit the word and its sum.
4. Answered above.
5. Answered above.