Python:使用 yelps MRJOB 增加 EMR 中的超时值

标签 python hadoop mapreduce elastic-map-reduce mrjob

我正在使用 yelp MRjob 编写一些 mapreduce 程序。我在 EMR 上运行它。我的程序有 reducer 代码,需要很长时间才能执行。我注意到由于 EMR 中的默认超时期限,我收到此错误

Task attempt_201301171501_0001_r_000000_0 failed to report status for 600 seconds.Killing!

我想要一种增加 EMR 超时的方法。我阅读了 mrjobs 官方文档,但我无法理解该过程。有人可以建议解决此问题的方法。

最佳答案

我过去处理过与 EMR 类似的问题,您要查找的属性 mapred.task.timeout 对应于 任务执行前的毫秒数如果它既不读取输入,也不写入输出,也不更新其状态字符串,则终止

使用 MRJob,您可以添加以下选项:

--jobconf mapred.task.timeout=1800000

编辑:似乎某些 EMR AMI 似乎不支持在运行时使用 jobconf 设置超时等参数。相反,您必须像这样使用 Bootstrap-time 配置:

--bootstrap-action="s3://elasticmapreduce/bootstrap-actions/configure-hadoop -m mapred.task.timeout=1800000"

我仍然会尝试第一个开始,看看您是否可以让它工作,否则尝试引导操作。

要运行这些参数中的任何一个,只需创建从 MRJob 扩展的作业,此类有一个 jobconf 方法可以读取您的 --jobconf 参数,因此您应该在命令行中将这些指定为常规选项:

python job.py --num-ec2-instances 42 --python-archive t.tar.gz -r emr --jobconf mapred.task.timeout=1800000 /path/to/input.txt

关于Python:使用 yelps MRJOB 增加 EMR 中的超时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14382410/

相关文章:

python - 你如何读取这个 .wav 文件字节数据?

python - 获取错误将错误的 SQL 语句打印到标准输出 python

hadoop - 使用什么.. HDFS 上的 Impala 或 Hbase 上的 Impala 或只是 Hbase?

hadoop - 发出同时运行两个Oozie协调器应用程序的问题

hadoop - 如何降低Flume Sequence Generator

Java 8 一对多分组

python - 有什么方法可以防止 python 中的副作用?

python - 无法理解 PyQt 中的一行代码

java - Hadoop中的shell $ ExitCodeException

hadoop - 使用 DistributedCache 访问 MapFile 时出现 FileNotFoundException