EMR [使用 MRJob] 的输入数据如何跨节点分布?

Posted

技术标签:

【中文标题】EMR [使用 MRJob] 的输入数据如何跨节点分布?【英文标题】:How is input data distributed across nodes for EMR [using MRJob]? 【发布时间】:2011-02-21 17:36:29 【问题描述】:

我正在研究使用 Yelp 的 MRJob 来使用 Amazon 的 Elastic Map Reduce 进行计算。在计算密集型工作期间,我需要读取和写入大量数据。每个节点应该只获取一部分数据,我对这是如何完成的感到困惑。目前,我的数据在 MongoDB 中,并存储在持久性 EBS 驱动器上。

使用 EMR 时,数据是如何通过节点分解的?应该如何告诉 MRJob 将数据分区到哪个键上? MRJob EMR documentation 隐含了分解步骤:如果您打开文件或连接到 S3 键值存储,它如何划分键?它是否假设输入是一个序列并在此基础上自动对其进行分区?

也许有人可以解释输入数据如何使用MRJob wordcount example 传播到节点。在该示例中,输入是一个文本文件——它是复制到所有节点,还是由一个节点连续读取并分段分发?

【问题讨论】:

【参考方案1】:

该示例假定您正在处理文本文件。我不确定您是否可以传入参数以使用 MongoDB hadoop 驱动程序。

你想在这里做什么?我正在研究 MongoDB hadoop 驱动程序,我正在寻找示例和测试用例。

【讨论】:

多么好的机会! :-) 所以,MongoDB 执行 MapReduce,但它仅在您使用分片并且需要使用 javascript 编程时才会并行化(呃)。我希望获取数百万条英文文本记录,使用 Python 库解析它们(2 秒/记录),然后将它们保存回来。我很乐意与您合作并提供测试示例/代码。 我的电子邮件地址在我的个人资料中。我还是hadoop的新手。我不确定python api是如何工作的。你得帮帮我。

以上是关于EMR [使用 MRJob] 的输入数据如何跨节点分布?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 EMR 上使用 MrJob 0.4.2 设置 IAM 角色

在 emr 上运行 mrjob 脚本的 ssh 密钥无效

MRJob 确定是不是运行内联、本地、emr 或 hadoop

使用 MRJob 将作业提交到 EMR 集群

如何将 mrjob EMR 指向正确的 AWS 账户?我不断收到 ssh 密钥无效消息

mrjob 在 Amazon EMR 5.x 上不起作用,但在 EMR4.8.3 上运行