我一直在尝试在Amazon EMR中使用Hadoop流媒体来为一堆文本文件做简单的字数统计。为了处理hadoop流媒体和亚马逊的EMR,我采用了一个非常简化的数据集。每个文本文件只有一行文本(该行可能包含任意数量的文字)。Hadoop流式传输和AMAZON EMR
映射器是一个R脚本,它将行拆分为单词并将其吐出到流中。
cat(wordList[i],"\t1\n")
我决定用LongValueSum总结减速机加计数在一起,所以我不得不LongValueSum
cat("LongValueSum:",wordList[i],"\t1\n")
前缀我的映射器的输出,并指定减速是“汇总“
我现在的问题如下:
mapper和reducer之间的中间阶段,只是对流进行排序。它并没有真正结合在一起。我对吗?我问这是因为如果我不使用“LongValueSum”作为映射器输出的单词的前缀,那么在reducer中,我只是接收按键排序但未汇总的流。这是我刚刚收到的订单K,而不是(K,列表(值))在减速机。我需要在我的命令中指定一个组合器吗?
如何使用其他集合减速器。我明白了,可很多其他的减速/聚集/组合对http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html
如何在一个Amazon EMR指定这些组合和减速设置?
我相信这样的问题已经在Hadoop流媒体中提交并修复为一个组合器,但我不确定AMAZON EMR将托管哪个版本以及此修补程序的版本。
- 如何自定义输入格式和记录读者和作家。有很多用Java编写的库。是否足以为每个这些选项指定java类名称?