问题标签 [mrjob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9552 浏览

python - Python 模块导入错误“ImportError:没有名为 mrjob.job 的模块”

系统:Mac OSX 10.6.5,Python 2.6

我尝试运行下面的python脚本:

我收到以下错误:

我曾经像这样使用easy_install:

sudo easy_install mrjob

该命令下载了所需的 .egg 文件,我的 python 站点包目录如下所示:

我不确定在这里做什么,因为我对 python 有点陌生;任何帮助将非常感激。谢谢!

0 投票
1 回答
788 浏览

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

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

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

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

0 投票
1 回答
2529 浏览

python - MapReduce对多个文件中所有行的成对比较

我开始使用 python 的mrjob将我的一些长期运行的 python 程序转换为 MapReduce hadoop 作业。我已经得到了简单的字数统计示例,并且我在概念上理解了“文本分类”示例。

但是,我在确定解决问题所需的步骤时遇到了一些麻烦。

我有多个文件(大约 6000 个),每个文件有 2 到 800 行。在这种情况下,每一行都是一个简单的以空格分隔的“信号”。我需要比较每个文件中的每一行与所有文件(包括其自身)中的每一行之间的相关性。然后根据相关系数输出结果。

一个文件的示例:

我需要将此文件的每一行与其他每个文件中的每一行配对生成......或者如果这会使事情变得更容易,我可以将所有文件连接到一个文件中,但我仍然需要成对迭代。

我了解如何进行计算以及如何使用最终的 reduce 步骤来聚合和过滤结果。我遇到的困难是如何在yield不读取单个 setp 中的所有文件的情况下将所有成对的项目添加到连续的步骤中?我想我可以提前准备一个输入文件,itertools.product但这个文件会非常大。

0 投票
2 回答
3132 浏览

python - Numpy 和 Scipy 与 Amazon Elastic MapReduce

使用 mrjob 在 Amazon 的 Elastic MapReduce 上运行 python 代码我已经成功地找到了升级 EMR 图像的 numpy 和 scipy 的方法。

从控制台运行以下命令有效:

这成功地将最新的 numpy 和 scipy 引导到图像中并且完美运行。我的问题是速度问题。这需要 21 分钟才能在小型实例上自行安装。

有谁知道如何加快升级 numpy 和 scipy 的过程?

0 投票
1 回答
1568 浏览

amazon-web-services - 运行 EMR 作业的最低 AWS 策略要求

我想com.test.mybucket使用 MRJob Python 框架对来自 S3 存储桶的数据运行 Elastic Mapreduce。但是,我在 S3 中有很多其他数据,以及我不想接触的其他 EC2 实例。AWS 用户运行完整作业所需的最少可能访问凭证集是多少?

0 投票
2 回答
2964 浏览

python - python subprocess.Popen 怎么能看到 select.poll 然后以后看不到?(选择“模块”对象没有属性“轮询”)

我正在使用来自 Yelp 的(很棒的)mrjob库在 Amazon 的 Elastic Map Reduce 中运行我的 python 程序。它取决于标准 python 库中的子进程。在我运行 python2.7.2 的 mac 上,一切都按预期工作

然而,当我切换到在 Ubuntu LTS 11.04 上也使用与 python2.7.2 完全相同的代码时,我遇到了一些奇怪的事情:

mrjob 加载作业,然后尝试使用 subprocess 与其子进程通信并生成此错误:

这似乎是 subprocess 而不是 mrjob 的问题。

我挖掘了 /usr/lib/python2.7/subprocess.py 并发现在导入期间它运行:

通过编辑它,我验证它确实设置了 _has_poll==True。这是正确的;在命令行上轻松验证。

但是,当执行进展到使用 Popen._communicate_with_poll 时,选择模块发生了变化!这是通过在尝试使用 select.poll() 之前打印 dir(select) 生成的。

没有名为“民意调查”的属性!?!?它是如何消失的?

所以,我硬编码_has_poll=False,然后mrjob愉快地继续它的工作,在AWS EMR中运行我的工作,子进程使用communicate_with_select......我被一个手工修改的标准库困住了......

有什么建议吗?:-)

0 投票
5 回答
7053 浏览

python - 带 MRJob 的多个输入

我正在尝试学习将 Yelp 的 Python API 用于 MapReduce、MRJob。他们简单的单词计数器示例很有意义,但我很好奇如何处理涉及多个输入的应用程序。例如,不是简单地计算文档中的单词,而是将向量乘以矩阵。我想出了这个解决方案,它的功能,但感觉很傻:

运行此代码./matrix.py < input.txt,它起作用的原因是矩阵按列存储在 input.txt 中,相应的向量值位于行尾。

因此,以下矩阵和向量:

在此处输入图像描述

表示为 input.txt 为:

在此处输入图像描述

简而言之,我将如何更自然地将矩阵和向量存储在单独的文件中并将它们都传递给 MRJob?

0 投票
2 回答
343 浏览

python - 有没有办法确定传递给 Hadoop/Dumbo/Mrjob 中映射作业的文件名?

全部,

我正在创建一个接口来处理一些海量数据并生成 arff 文件以进行一些机器学习。我目前可以收集这些功能 - 但我无法将它们与派生它们的文件相关联。我目前正在使用 Dumbo

是否有任何方便的方法来确定打开的文件名并将其内容传递给映射器函数?

再次感谢。-山姆

0 投票
2 回答
251 浏览

unix - 外壳上带有 mrjob 管道的 hadoop

我有一个关于 mrjob 的问题。我使用一个名称节点和一个作业跟踪器在 3 个数据节点上使用 hadoopcluster。从一个漂亮的示例应用程序开始,我写了如下内容

这显然是在向 stdout 写入一堆行,辅助脚本是 mrjobs Mapper 和 Reducer。我尝试从 unix (GNU) 调用:

这完成了工作,但它正在将输入完全上传到 hdfs。就在所有内容都上传完毕后,他开始了第二份工作。所以我的问题是:是否可以强制流?(比如发送 EOF?)还是我弄错了整个事情?

0 投票
3 回答
317 浏览

hadoop - 根据映射器代码中的某些逻辑,将映射器中的一些数据(行)写入单独的目录

我正在使用 mrjob 来满足我的 EMR 需求。

如何根据我的映射器代码中的一些逻辑将一些数据(行)从我的映射器写入“单独的目录”:

  1. tar gzip 和

  2. 作业完成/突然终止后上传到单独的 S3 存储桶(取决于目录名称)?

我猜 ' --output-dir' 选项只允许您将最终作业输出上传到该目录,但我想不时从我的映射器写入其他目录。