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

2024-04-18 13:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用yelpmrjob编写一些mapreduce程序。我在电子病历上运行。我的程序有一个需要很长时间才能执行的reducer代码。我注意到,由于EMR中的默认超时时间,我得到了这个错误

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

我想要一种增加电子病历超时的方法。我读了mrjobs的官方文件,但是我不明白程序。有人能提出解决这个问题的办法吗。在


Tags: to代码程序reporttask错误时间电子
1条回答
网友
1楼 · 发布于 2024-04-18 13:30:55

我在过去处理过一个类似的EMR问题,您要查找的属性mapred.task.timeout,它对应于如果一个任务既不读取输入,也不写入输出,也不更新其状态字符串,。在

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

 jobconf mapred.task.timeout=1800000

编辑:似乎有些EMR AMI不支持在运行时使用jobconf设置超时等参数。相反,您必须使用如下引导时间配置:

^{pr2}$

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

要运行这些参数中的任何一个,只需创建从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

相关问题 更多 >