问题标签 [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.
python - 如何使用 mrjob 迭代处理一个目录下的所有文件
我正在使用 mrjob 处理一批文件并获取一些统计信息。我知道我可以在单个文件上运行 mapreduce 作业,例如
但是如何将文件目录提供给脚本?文件目录结构是这样folder/subfolders/files
的,有什么建议吗?
python - 如何从eclipse调试用mrjob编写的python MapReduce程序
我正在尝试在 Ubuntu 下使用 eclipse 调试在 python 的 mrjob 库中编写的 mapreduce 作业。有谁知道如何做到这一点?
python - 关于在 Amazon EMR 上使用 mrjob 运行 Mapreduce 程序的一些基本疑问
我是 mrjob 的新手,在 Amazon EMR 上运行作业时遇到问题。我将按顺序编写它们。
- 我可以在本地机器上运行 mrjob。但是,当我在 /home/ankit/.mrjob.conf 和 /etc/mrjob.conf 中有 mrjob.conf 时,该作业不会在我的本地计算机上执行。这就是我得到的。https://s3-ap-southeast-1.amazonaws.com/imagna.sample/local.txt
- 文档中“MR_CONF指定的位置”中的MRJOB_CONF是什么?
- 'base_tmp_directory' 有什么用?另外,我是否需要在开始作业之前在 S3 中上传输入数据,或者它会在开始执行时从我的本地计算机加载?
- 如果我使用一些库,如 numpy、scikit 等,我需要做一些引导吗?如果是,如何?
- 这就是我在 EMR https://s3-ap-southeast-1.amazonaws.com/imagna.sample/emr.txt上执行运行作业的命令时得到的
有什么解决办法吗?
非常感谢。
hadoop - mrjob 文档中的“MRJOB_CONF 指定的位置”
mrjob 文档中的“MRJOB_CONF 指定的位置”是哪个路径?链接到 mrjob 文档:http ://mrjob.readthedocs.org/en/latest/guides/configs-basics.html
hadoop - 是否有一个好的库可以帮助使用 Hadoop Streaming 和 Python 链接 MapReduce 作业?
这个问题回答了我的部分问题,但不完全。
如何运行管理此脚本的脚本,它来自我的本地文件系统吗?像 MrJob 或 Dumbo 这样的东西到底在哪里出现?还有其他选择吗?
我正在尝试运行 K-Means,其中每次迭代(一个 MapReduce 作业)输出将是使用 Hadoop Streaming 和 Python 进行下一次迭代的输入。
我没有太多经验,任何信息都可以帮助我完成这项工作。谢谢!
python - 如何为 Python 程序分配更多内存?它在 4GB RAM 上消耗的空间不超过 64MB
我有一个 Python 程序在 4GB RAM 32 位 12.04 Ubuntu 上运行一些输入数据。该程序的时间和空间复杂度均为 O(n)。当输入数据约为 100 kb 时,它在大约 4 秒内完成执行,峰值 RAM 消耗为 0.5%(在 LINUX 中使用“top”命令)。但是,当我尝试输入大小为 500kB、2.5MB 和 16 MB 的数据时,该过程并未在 1 小时内完成(在每种情况下,我都必须使用 Cntrl C 取消)并且内存消耗停留在 1.6%(即每种情况下大约 64MB)。我可以以某种方式为这个 Python 进程分配更多的 RAM 内存吗?
注意:我正在使用 Python 制作的“mrjob”库在 Python 中实现 Map Reduce 作业。
以下是输入 csv 文件为 100 kB 时成功执行的日志。
这是输入 csv 文件为 2.5 MB 时的执行日志和回溯。
hadoop - Hadoop 上的 MRJob 和 mapreduce 任务分区
我正在尝试使用 Python MRJob lib 执行 mapreduce 作业,但在让它正确分布在我的 Hadoop 集群中时遇到了一些问题。我相信我只是错过了 mapreduce 的基本原则。我的集群是一个小型的,一主一从的测试集群。基本思想是我只是请求一系列带有参数的网页,对它们进行一些分析并返回网页上的一些属性。
我的 map 函数的输入只是一个带有以下参数的 URL 列表:
这样初始输入的键值对就是 key:None, val:URL。
以下是我的地图功能:
很简单,我只是检查以确保 URL 有一个参数并将 URL 的域作为键和一个元组给我 URL 和查询参数作为值,MRJob 友好地将其转换为一个列表以传递给减速器,它如下:
我的问题是只运行一个减速器任务。我希望 reducer 任务的数量等于映射器发出的唯一键的数量。上面代码的最终结果是我有一个在master上运行的reducer,但是slave闲着什么也不做,这显然不理想。我注意到在我的输出中启动了一些映射器任务,但始终只有 1 个减速器任务。除此之外,任务运行顺利,所有工作都按预期进行。
我的问题是……我到底做错了什么?我是否误解了 reduce 步骤或在某处搞砸了我的键值对?为什么没有多个减速器在这个工作上运行?
更新:好的,所以从给出的答案中我将 mapred.reduce.tasks 增加到更高(这是我现在意识到的默认值是 1)。这确实是我得到 1 个减速器的原因。我现在看到同时执行 3 个 reduce 任务。我的奴隶现在有一个需要解决的导入错误,但至少我到了某个地方......
python - 使用 sqlite3dbm 和 mrjob 进行地图减少
我有一个 sqlite3dbm,它将数据存储在键值对中。我需要使用mrjob
. 当我运行我的代码xyz.py my_db.db
时,mapper fn 无法正常工作。
我为空k
java - 如何捆绑自定义 hadoop-streaming.jar
我正在尝试CombineFileInputFormat
使用 Yelp 的 MrJob 用于 EMR 工具的课程。作业流是使用 hadoop 流创建的,MrJob 的文档表明CombineFileInputFormat
该类必须捆绑在自定义的hadoop-streaming.jar
.
有关上下文,请遵循此问题。
具体来说,我的问题是:具体类应该在哪里CombinedInputFormat.class
捆绑或引用hadoop-streaming.jar
?
我尝试CombinedInputFormat.class
通过将其添加到目录org/apache/hadoop/streaming
并执行来捆绑:
如果我这样做,则流式作业流程将启动,并选择-inputformat CombinedInputFormat
Job 开始第一步并中断,并出现错误:
如果我只是尝试将其设置在根路径中:
我得到的错误是:
我应该如何捆绑 CombinedInputFormat.class 以便正确获取并解决NoClassDefFoundError
错误?
hadoop - mapreduce 排序和洗牌是如何工作的?
我正在使用 yelps MRJob 库来实现 map-reduce 功能。我知道 map reduce 有一个内部排序和洗牌算法,它根据它们的键对值进行排序。所以如果我在地图阶段之后有以下结果
我知道排序和洗牌阶段会产生以下输出
正如预期的那样
但是,如果我有两个相似的键和不同的值,为什么 sort 和 shuffle 阶段会根据出现的第一个值对数据进行排序?
例如,如果我有以下来自映射器的值列表
预期的输出是
但我得到的输出是
这个 MRjob 库是特定的吗?反正有没有停止这种基于价值的排序?
代码