Hadoop 在close()方法中报告作业状态/进度
我在hadoop中遇到了超时问题,我的工作被终止了。close()方法中有大量的清理工作,因此在执行这些清理时,我需要更新close方法中的进度 对于这种情况,增加超时不是一个好的选择,因为它不能随清理工作的量而伸缩 我看到的遗留作业使用的是旧API,它在reduce()方法中有一个reporter对象,可用于更新进度。但是,close()方法中没有这样的报告器。有什么解决办法吗?试试使用 Hadoop提供了可编程接口,其中包含这个有趣的方法Hadoop 在close()方法中报告作业状态/进度,hadoop,distributed-computing,Hadoop,Distributed Computing,我在hadoop中遇到了超时问题,我的工作被终止了。close()方法中有大量的清理工作,因此在执行这些清理时,我需要更新close方法中的进度 对于这种情况,增加超时不是一个好的选择,因为它不能随清理工作的量而伸缩 我看到的遗留作业使用的是旧API,它在reduce()方法中有一个reporter对象,可用于更新进度。但是,close()方法中没有这样的报告器。有什么解决办法吗?试试使用 Hadoop提供了可编程接口,其中包含这个有趣的方法Public void Progress()。Cont
Public void Progress()
。Context类实现此接口,因此任何映射器或reducer都可以调用:
context.progress()
显示它是活动的并继续处理
作为最后的手段,既然您确信这不是一个好的选择,那么您可以增加该配置属性:
<property>
<name>mapreduce.task.timeout</name>
<value>2000000</value>
</property>
此属性的值越高,对您的情况越好。默认值为600000。尝试使用
Hadoop提供了可编程接口,其中包含这个有趣的方法Public void Progress()
。Context类实现此接口,因此任何映射器或reducer都可以调用:
context.progress()
显示它是活动的并继续处理
作为最后的手段,既然您确信这不是一个好的选择,那么您可以增加该配置属性:
<property>
<name>mapreduce.task.timeout</name>
<value>2000000</value>
</property>
此属性的值越高,对您的情况越好。默认值为600000。旧API中类似的类称为Reporter。但它并没有传递到reducer中的close()方法中。在减速机的有生之年,记者是单身吗?如果是,我是否可以将其分配给对象级字段,并在以后用于报告进度?旧API中的类似类称为Reporter。但它并没有传递到reducer中的close()方法中。在减速机的有生之年,记者是单身吗?如果是,我是否可以将其指定给对象级字段,并在以后用于报告进度?