分享

hadoop2.6.0作业恢复问题

幻灭若水 发表于 2015-1-20 10:27:38 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 13 34473
我用hadoop2.6.0集群,当运行mapreduce一段是时间之后,把相应的MRAppMaster杀死后,这个作业从头开始做了,而没有把之前已经执行完成的任务恢复过来,是有什么相关的配置吗?我上网查资料,说作业恢复这个功能的参数yarn.app.mapreduce.am.job.recovery.enable默认就是true的。谁能帮我解答下啊。

已有(13)人评论

跳转到指定楼层
stark_summer 发表于 2015-1-20 10:47:20
MRAppMaster kill 应该没有效果吧 数据也没有做运行时备份
回复

使用道具 举报

幻灭若水 发表于 2015-1-20 11:00:08
stark_summer 发表于 2015-1-20 10:47
MRAppMaster kill 应该没有效果吧 数据也没有做运行时备份

我看董西成的博客说“当MRAppMaster失败后,另一个MRAppMaster启动时,可直接读取HDFS中上一个作业产生的日志,以恢复已经运行完成的任务。”那我怎样才能测试这个功能是不是好使呢?
回复

使用道具 举报

desehawk 发表于 2015-1-20 11:56:45
幻灭若水 发表于 2015-1-20 11:00
我看董西成的博客说“当MRAppMaster失败后,另一个MRAppMaster启动时,可直接读取HDFS中上一个作业产生的 ...
实践出真知,并非所有人的观点都是正确的,客观事实才是硬道理。

一旦宕机,各个作业的状态会复原,也就说,记录还是会保持的,但是运行失败的程序,会重新运行,并不会继续执行。比如一个程序运行异常了,可能是重启,而不是打开后继续运行。但是这个fail的状态可能是会被记录的。

回复

使用道具 举报

幻灭若水 发表于 2015-1-20 13:08:13
desehawk 发表于 2015-1-20 11:56
实践出真知,并非所有人的观点都是正确的,客观事实才是硬道理。

一旦宕机,各个作业的状态会复原,也 ...

恩,当然要实践,我就是不知道怎么让MRAppMaster失败。
回复

使用道具 举报

幻灭若水 发表于 2015-1-20 13:15:54
desehawk 发表于 2015-1-20 11:56
实践出真知,并非所有人的观点都是正确的,客观事实才是硬道理。

一旦宕机,各个作业的状态会复原,也 ...

我就是想实践这个功能。如果有一个作业已经运行了90%,MRAppMaster失败了,我正在执行的作业挂掉了,如果作业重新执行的话,那会浪费很多时间还要重新执行。我看hadoop2的资料说作业恢复可以使已经完成的任务不需要重复执行。但是现在没有测试出来这个功能,不知道是不是我少配置了什么。
回复

使用道具 举报

w123aw 发表于 2015-1-20 13:28:01
本帖最后由 w123aw 于 2015-1-20 13:36 编辑
幻灭若水 发表于 2015-1-20 13:15
我就是想实践这个功能。如果有一个作业已经运行了90%,MRAppMaster失败了,我正在执行的作业挂掉了,如果 ...

作业级别分为三种:
所以楼主的配置应该是任务级别,对于对于正在运行的任务,则在前一次MRAppMaster运行实例退出时由ResourceManager强制将其杀死并回收资源。


详细如下:
从作业恢复粒度角度来看,当前存在三种不同级别的恢复机制, 级别由低到高依次是作业级别、任务级别和记录级别,其中级别越低实现越简单,但造成的资源浪费也越严重。当前MRAppMaster采用了任务级别的恢复机制,即以任务为基本单位进行恢复, 这种机制是基于事务型日志完成作业恢复的,它只关注两种任务:运行完成的任务和未完成的任务。作业执行过程中,MRAppMaster会以日志的形式将作业以及状态记录下来,一旦MRAppMaster重启,则可从日志中恢复作业的运行状态。

      当前MRAppMaster的作业恢复机制仅能做到恢复上一次已经运行完成的任务,对于正在运行的任务,则在前一次MRAppMaster运行实例退出时由ResourceManager强制将其杀死并回收资源。

回复

使用道具 举报

幻灭若水 发表于 2015-1-20 13:32:32
w123aw 发表于 2015-1-20 13:28
作业级别分为三种:
所以楼主的配置应该是人任务级别,对于对于正在运行的任务,则在前一次MRAppMaster ...

也就是说如果我的作业有20个任务,已经完成了10个任务,如果MRAppMaster挂掉重启后,我的作业已经完成的10个任务就不用再执行了,hadoop会自动恢复,而没有执行的任务会继续执行。但是我将MRAppMaster杀掉后,已经完成的10个任务也重新执行了,不知道我少配置了什么。能指点我下么。
回复

使用道具 举报

w123aw 发表于 2015-1-20 13:32:56
本帖最后由 w123aw 于 2015-1-20 13:39 编辑
幻灭若水 发表于 2015-1-20 13:15
我就是想实践这个功能。如果有一个作业已经运行了90%,MRAppMaster失败了,我正在执行的作业挂掉了,如果 ...


hadoop1和hadoop2的配置方式有所不同,
hadoop1通过jobtracer节点配置文件的配置项
  1. mapred.jobtracker.restart.recover
复制代码
hadoop2通过yarn的
  1. yarn.resourcemanager.recovery.enabled
复制代码
来配置,配置文件为yarn-site.xml

mapred.jobtracker.restart.recover

yarn.resourcemanager.recovery.enabled

Enable recovery of jobs after failover


回复

使用道具 举报

幻灭若水 发表于 2015-1-20 13:48:43
w123aw 发表于 2015-1-20 13:32
hadoop1和hadoop2的配置方式有所不同,
hadoop1通过jobtracer节点配置文件的配置项
hadoop2通过yarn ...

这个参数我之前就配置成true了,还是不行,你试过这个功能吗?
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条