我有大约170 GB的数据。我必须使用hadoop 2.7.3来分析它。有14名工人。我必须找到每个文档的唯一MIME类型的总数,例如文本/ html类型的文档总数。当我运行mapreduce作业(用python编写)时,Hadoop会返回许多输出文件,而不是我期望的单个文件。我认为这是由于许多工人单独处理一些数据并给出结果。我想得到单一的输出。哪里有问题。我如何限制hadoop提供单一输出(通过结合所有小型输出文件)。如何结合hadoop mappers输出获得单一结果
0
A
回答
1
您的工作是为每个映射器生成1个文件,您必须使用1个reducer强制执行reducer阶段才能完成此操作,您可以在所有映射器中完成相同的密钥。
2
您可以使用Hadoop getmerge命令合并结束文件,当您从HDFS检索数据:
hadoop fs -getmerge /output/reduce/ /localcatalog/mergedresult.txt
每个映射器和减速会生成一个单独的文件,并通过减少映射器和减压器你会数量降低您的工作并行度。我认为,不要将reducer限制为单个输出,最好的方法是使用提供的命令从hdfs获取合并结果。
1
使你的映射器发出处理每个文件 - (doc-mime-type, 1)
然后在减少阶段计数所有这些对。从本质上讲,这是一个标准的字数统计练习,除了您的mapper会为每个doc的mime类型发射1个字符。
关于要设置的还原器数量:Alex合并还原器结果的方式是可取的,因为它允许在还原阶段使用所有工作器节点。但是,如果作业要在1-2个节点上运行,那么只需一个减速器就可以正常工作。
相关问题
- 1. 如何结合两个查询来获得一个结果?
- 2. 如何合并或mvc4相结合的结果,以获得期望的结果
- 3. Python获得混合结果。
- 4. 结合2 mysql结果输出
- 5. 如何获得结果?
- 6. 如何获得此结果
- 7. 如果您希望获得单一结果,“SELECT TOP 1”是否是获得单一结果的最佳方法?
- 8. 如何输出结果?
- 9. 获得合并PR结果的合并结果
- 10. 如何结合两个表来获得所需的结果
- 11. 如何获得一个表结果
- 12. 如何获得Fping结果输出端子
- 13. 如何获得详细的结果输出ElasticSearch
- 14. 在同一页输出表单结果
- 15. php - 无法获得查询的输出结果。 (如果有输出的话)
- 16. BASH结合简单的程序来得到一些输出
- 17. 获得一个类输出的结果在PHP中
- 18. 如何结合JSON结果
- 19. hadoop得到实际的mappers人数
- 20. 的Clojure - 结合结构以获得平坦的结果
- 21. 如何在symfony2中使用DQL获得单一结果
- 22. 如何获得单一的实体结果
- 23. 获得从结果
- 24. 获得MySQL结果
- 25. 从输入获得值,结果为NaN
- 26. aspnet_regiis.exe输出结果
- 27. 将两个不同选择的结果合并为一个获得结果集
- 28. 如何在Android的Activity结果中获得结果?
- 29. 如何获得监测结果(Jmeter)的结果?
- 30. 如何将结果输出到JSFiddle中的'结果'窗口?
你可以设置setnumreducetasks(1)来获得单个输出,我相信 – Bhavesh
你能更具体吗?什么是所需的输出格式?你得到的输出是什么? – vefthym