gpt4 book ai didi

hadoop - 结合 AWS EMR 输出

转载 作者:可可西里 更新时间:2023-11-01 14:22:29 26 4
gpt4 key购买 nike

我使用自定义映射器运行了一个测试 AWS EMR 作业,但使用 NONE 作为缩减器。我在 13 个单独的“部分”文件中获得了(预期的)输出。如何将它们合并到一个文件中?

我不需要以任何特殊方式聚合数据,我也不在乎它是排序的、任意重新排序的还是按顺序保留的。但我想有效地将​​数据放回一个文件中。我必须手动执行此操作,还是有办法将其作为 EMR 集群的一部分执行?

我很奇怪没有默认选项或某种自动步骤可用。我读过一些关于 Identity Reducer 的内容。它能满足我的要求吗?如果是,在通过 EMR 控制台启动集群时如何使用它?

我的数据在 S3 中。


编辑

非常清楚,我可以在工作完成后对所有输出部分运行 cat,如果这是我必须做的。在本地,或在 EC2 实例上,或其他任何地方。真的每个人都这样做吗?

最佳答案

如果映射器部分文件本身的输出很小,那么您可以尝试使用 hadoop fs -getmerge 将它们合并到本地文件系统:

hadoop fs -getmerge s3n://BUCKET/path/to/output/ [LOCAL_FILE]

然后将合并后的文件放回S3:

hadoop fs -put [LOCAL_FILE] s3n://BUCKET/path/to/put/

要使上述命令生效,您应该在 core-site.xml

中设置以下属性
<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>YOUR_ACCESS_KEY</value>
</property>

<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>YOUR_SECRET_ACCESS_KEY</value>
</property>

关于hadoop - 结合 AWS EMR 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com