我用一个自定义Map器运行了一个测试aws emr作业,但是没有一个作为缩减器。我在13个单独的“part”文件中得到了(预期的)输出。如何将它们合并到一个文件中?
我不需要以任何特殊的方式聚合数据,也不关心数据是否被排序、任意重新排序或按顺序保留。但我想有效地将数据放回一个文件中。我必须手动完成吗,或者作为emr集群的一部分,有什么方法可以完成吗?
对我来说很奇怪的是,没有一个默认选项或某种自动步骤可用于此。我读过一些关于身份缩减器的文章。它做了我想要的吗?如果是的话,在通过emr控制台启动集群时如何使用它?
我的数据是s3。
编辑
说得很清楚,我可以跑 cat
如果这是我必须要做的,那么在工作完成后的所有输出部分上。在本地,或者在ec2示例上,或者别的什么。每个人都这么做吗?
1条答案
按热度按时间scyqe7ek1#
如果Map器零件文件本身的输出很小,则可以尝试使用
hadoop fs -getmerge
要将它们合并到本地文件系统:然后将合并文件放回s3:
要使上述命令正常工作,您应该在中设置以下属性
core-site.xml
```fs.s3n.awsAccessKeyId
YOUR_ACCESS_KEY