python:使用yelps mrjob增加emr中的超时值

vhmi4jdf  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(596)

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

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

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

vxf3dgd4

vxf3dgd41#

我曾经处理过类似的问题,与emr在过去,你正在寻找的财产 mapred.task.timeout 如果任务既不读取输入,也不写入输出,也不更新其状态字符串,则任务终止前的毫秒数。
使用mrjob,可以添加以下选项:

--jobconf mapred.task.timeout=1800000

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

--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

相关问题