MapReduce错误任务失败处理

标签: mapreduce 错误 任务 | 发表时间:2013-03-25 01:56 | 作者:luyee2010
出处:http://blog.csdn.net

MapReduce的作业失败主要分三个层次,即jobtracker失败,tasktracker,子任务实例

1,jobtracker失败

jobtracker失败应该说是最严重的一种失败方式了,而且在hadoop中存在单点故障的情况下是相当严重的,因为在这种情况下作业最终失败,尽管这种故障的概率极小但是还是应该避免,可以通过启动多个jobtracker,在这种情况只运行一个主的jobtracker.通过一种机制来确定那个是主的jobtracker.

2,tasktacker失败

作业运行期间,tasktracker会通过心跳机制不断与系统jobtracker通信,如果某个tasktracker运行缓慢或者失败,出现故障。tasktracker就会停止或者很少想jobtracker发送心跳,jobtracker会注意到此tasktracker发送心跳的情况,从而将此tasktracker从等待任务调度的tasktracker池中移除,jobtracker会安排此tasktracker上一成功运行的map任务返回,

①,如果他们属于为完成的作业的化,reduce阶段无法获取改tasktracker上的本地map输出文件,任何任务都需要重新调度---即只要是mapping阶段必然是重新执行

②,如果是reduce阶段呢,如果是reduce阶段自然就是执行为完成的reduce任务了,因为reduce只要执行完了的就会把输出写到Hdfs上

3,子任务失败,这个是不是可以理解为JVM级别的

①,当map或者reduce子任务中的代码抛出异常,JVM进程会在退出之前向服进程tasktracker进程发送错误报告,,tasktracker会将此(任务尝试)task attempt标记为failed状态,释放一个槽以便运行另外一个任务

②,对于流任务,如果流进程以非零退出代码退出运行则会标记为failed。

③,子JVM突然退出,即JVM错误,这时tasktracker会注意到进程已经退出,标记为failed

tasktracker将子任务标记为失败后会将自身计数器减一,以便想jobtracker申请新的任务,也是通过心跳告知jobtracker本地的一个任务尝试失败。jobtracker接到任务失败的通知后,会将其重新加入到调度队列重新分配给其他的tasktracker执行(避免将失败的任务分配给执行失败的tasktracker),但是这个尝试也是有次数限制的,默认情况下任务尝试4次后仍然没有完成,就不会再重试(jobtracker会将其标记为killed),此时整个作业就执行失败了。

4,jobcleanup,recoverymanager,taskcleanup,expiretrackers,expirelaunchingtasks,监测失效,清除恢复,还有好多后台线程。。。。



作者:luyee2010 发表于2013-3-25 1:56:46 原文链接
阅读:150 评论:0 查看评论

相关 [mapreduce 错误 任务] 推荐:

MapReduce错误任务失败处理

- - CSDN博客云计算推荐文章
MapReduce的作业失败主要分三个层次,即jobtracker失败,tasktracker,子任务实例. jobtracker失败应该说是最严重的一种失败方式了,而且在hadoop中存在单点故障的情况下是相当严重的,因为在这种情况下作业最终失败,尽管这种故障的概率极小但是还是应该避免,可以通过启动多个jobtracker,在这种情况只运行一个主的jobtracker.通过一种机制来确定那个是主的jobtracker.

通过eclipse调试MapReduce任务

- - 淘宝网通用产品团队博客
利用MapReduce利器作开发,不论从思想上还是技能上都是新的体验. 以下罗列下如何利用eclipse调试MR任务. (本人环境: hadoop 1.0.2,部署在linux上,本地windows开发). 先在linux上安装好hadoop,为更接近线上环进,我的是 安装成Cluster.

MapReduce调度与执行原理之任务调度

- - CSDN博客云计算推荐文章
前言:本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教. 本文不涉及Hadoop的架构设计,如有兴趣请参考相关书籍和文献. 在梳理过程中,我对一些感兴趣的源码也会逐行研究学习,以期强化基础. 作者:Jaytalent.

Mapreduce小结

- MAGI-CASPER/Peter Pan - 博客园-唯有前进值得敬仰
读完mapreduce论文小结一下. 1.MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题. 输入是一个key-value对的集合,中间输出也是key-value对的集合,用户使用两个函数:Map和Reduce. Map函数接受一个输入的key-value对,然后产生一个中间key-value 对的集合.

Hadoop MapReduce技巧

- - 简单文本
我在使用Hadoop编写MapReduce程序时,遇到了一些问题,通过在Google上查询资料,并结合自己对Hadoop的理解,逐一解决了这些问题. Hadoop对MapReduce中Key与Value的类型是有要求的,简单说来,这些类型必须支持Hadoop的序列化. 为了提高序列化的性能,Hadoop还为Java中常见的基本类型提供了相应地支持序列化的类型,如IntWritable,LongWritable,并为String类型提供了Text类型.

MapReduce原理

- - C++博客-牵着老婆满街逛
       MapReduce 是由Google公司的Jeffrey Dean 和 Sanjay Ghemawat 开发的一个针对大规模群组中的海量数据处理的分布式编程模型. MapReduce实现了两个功能. Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集. 而Reduce是把从两个或更多个Map中,通过多个线程,进程或者独立系统并行执行处理的结果集进行分类和归纳.

MapReduce优化

- - 行业应用 - ITeye博客
相信每个程序员在 编程时都会问自己两个问题“我如何完成这个任务”,以及“怎么能让程序运行得更快”. 同样,MapReduce计算模型的多次优化也是为了更好地解答这两个问题. MapReduce计算模型的优化涉及了方方面面的内容,但是主要集中在两个方面:一是计算性能方面的优化;二是I/O操作方面的优化.

Spark与Mapreduce?

- - 崔永键的博客
我本人是类似Hive平台的系统工程师,我对MapReduce的熟悉程度是一般,它是我的底层框架. 我隔壁组在实验Spark,想将一部分计算迁移到Spark上. 年初的时候,看Spark的评价,几乎一致表示,Spark是小数据集上处理复杂迭代的交互系统,并不擅长大数据集,也没有稳定性. 但是最近的风评已经变化,尤其是14年10月他们完成了Peta sort的实验,这标志着Spark越来越接近替代Hadoop MapReduce了.

Google Percolator替代MapReduce

- Hao - Solidot
Google在新一代内容索引系统中放弃了MapReduce,替代者是尚不为人知的分布式数据处理系统Percolator. The Register报道,Percolator是一种增量处理平台,它能持续更新索引系统,无需从头重新处理一遍整个系统. Google的工程师计划在下个月举行的年度USENIX Symposium 会议上公布Percolator相关论文.