Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:使用yelps MRJOB增加EMR中的超时值_Python_Hadoop_Mapreduce_Elastic Map Reduce_Mrjob - Fatal编程技术网

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

Python:使用yelps MRJOB增加EMR中的超时值,python,hadoop,mapreduce,elastic-map-reduce,mrjob,Python,Hadoop,Mapreduce,Elastic Map Reduce,Mrjob,我正在使用yelpmrjob编写一些mapreduce程序。我在EMR上运行它。我的程序有reducer代码,需要很长时间才能执行。我注意到,由于EMR中的默认超时时间,我得到了这个错误 Task attempt_201301171501_0001_r_000000_0 failed to report status for 600 seconds.Killing! 我想要一种增加EMR超时的方法。我阅读了mrjobs的官方文件,但我无法理解程序。有人能提出一个解决这个问题的方法吗。我在过去处

我正在使用yelpmrjob编写一些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-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

我在过去处理过一个与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

我应该在哪里写这个???@ravijimagna我在答案中添加了更多细节。谢谢@Charles…但现在我有了这个错误任务尝试\u 20130118006\u 0001\u r\u000000\u 0报告状态失败1802秒。杀人@ravijimagna嗯,我想你可以继续增加你的超时时间,这真的取决于你的任务是什么,1800秒听起来已经很多了,这是预期的行为吗?一点也不。当我在本地运行文件时,完成整个工作大约需要15分钟。EMR花费了太多的时间,两种情况下的代码完全相同。这方面有什么解决方案吗?我应该写在哪里???@ravijimagna我在答案中添加了更多细节。谢谢@Charles…但现在我有了这个错误任务尝试\u 20130118006\u 0001\u r\u000000\u 0在1802秒内报告状态失败。杀人@ravijimagna嗯,我想你可以继续增加你的超时时间,这真的取决于你的任务是什么,1800秒听起来已经很多了,这是预期的行为吗?一点也不。当我在本地运行文件时,完成整个工作大约需要15分钟。EMR花费了太多的时间,两种情况下的代码完全相同。这方面有什么解决办法吗?