我已经意识到,当使用Python代码运行Hadoop时,无论是mapper还是reducer(不知道是哪个)在打印出reducer.py之前对输出进行排序。目前它似乎按照字母数字排序。我想知道是否有一种方法可以完全禁用此功能。我希望程序的输出基于从mapper.py打印的顺序。我在Java中找到了答案,但是没有找到Python的答案。我是否需要修改mapper.py或者命令行参数?Hadoop和Python:禁用排序
2
A
回答
1
您应该阅读关于基本MapReduce概念的更多内容。尽管在某些情况下排序可能是不必要的,但“排序”阶段的混洗部分是MapReduce模型的固有部分。 MapReduce框架(Hadoop)需要对映射器的输出进行分组,以便将所有的键集中在一起,以便Reducer实际上可以“减少”数据。在使用流式传输时,键值对在默认情况下由制表符值分隔。从其他SO问题中的示例代码中,我可以看出您没有提供生成“关键,值”元组,而只是生成单个文本行。
编辑:增加了以下问题的答案“如何使它在数字上排序(例如,10之前9)?”
备选方案1:在您的密钥前加零,以使它们具有相同的大小。 “09”在“10”之前。
备选2:使用KeyFieldBasedComparator
,如this SO question中所示。
1
相关问题
- 1. Hadoop:排序和洗牌
- 2. Secondary排序Hadoop
- 3. 禁用排序?
- 4. 'dynamic'启用和禁用jquery排序
- 5. jqGrid:禁用排序
- 6. NSMutableDictionary禁用排序
- 7. 排序顺序与Hadoop MapRed
- 8. 禁用响应和列排序
- 9. 排序和在Python
- 10. 排序和在Python
- 11. 排序和在Python
- 12. Hadoop> WordCount按值排序
- 13. Hadoop - 在Reducer中排序
- 14. Hadoop示例排序验证
- 15. hadoop MapReduce按价值排序
- 16. 禁用排序在Datagridview
- 17. dataTables暂时禁用排序
- 18. 禁用排序的NSDictionary
- 19. 在jqGrid中禁用排序
- 20. RichFaces extendedDataTable禁用排序
- 21. 如何禁用NSTableView排序
- 22. 进口和排序在Python
- 23. Python的排序与和CSV
- 24. Python字符串和排序?
- 25. Python:列表,bin和排序
- 26. 排序中的价值秩序的Hadoop
- 27. 排序使用Python
- 28. Python Hadoop流媒体,二级排序问题
- 29. Hadoop和Cassandra按排序顺序处理行
- 30. Hadoop和Python:查看错误
如果您需要输出与由mapper打印的输出方式相同,那么您为什么需要减速器? –