MapReduce故障容错研究与作业调度器优化
发布时间:2019-09-04 13:56
【摘要】:随着数据爆炸性地增长,如何高效的分析和存储海量数据引起了人们的广泛关注,传统的网格计算、并行计算和分布式计算已经不能满足现在海量数据处理的要求,MapReduce编程模型应运而生。MapReduce的出现让海量数据的处理变得轻松和简单。MapReduce被广泛的应用于用户行为分析,广告效果分析、网络爬虫等海量数据处理。随着MapReduce集群不断扩大和MapReduce应用的增多,MapReduce一些不完善的地方也逐渐显现。由于MapReduce采用master/slave架构,主节点JobTracker就会存在单点故障问题。当前绝大多数MapReduce作业调度器是按照CPU进行调度的,作业调度的时候没有考虑到作业和机器的内存使用情况,因此,会造成大内存作业运行时占用较多的内存资源而导致TaskTracker的内存溢出甚至宕机。本文在分析MapReduce相关技术的基础上进行以下两个方面的研究工作: 1)本文针对JobTracker的单点故障问题,提出了双节点热备份的解决方案,设计并实现一个双机热备系统。在该系统中,通过双机热备来提高JobTracker的故障容错能力,即引入了一个备份JobTracker去对主JobTracker进行热备份。备份JobTracker通过实时收集、解析主JobTracker的作业状态更新日志来恢复作业运行状态,从而到达主备状态同步。当主JobTracker失效或者Hadoop集群需要重启时,备份JobTracker将会迅速恢复所有的作业状态,并接管原来主JobTracker的所有服务而成为新的主JobTracker,从而保证了所有服务不间断的运行。实验表明该方案能够有效的解决JobTracker的单点故障问题,提高MapReduce的故障容错能力。备份JobTracker同步主JobTracker状态带来的额外代价较小,几乎可以忽略;故障切换和恢复时间不到2s,有着良好的用户体验。 2)本文针对传统作业调度器中没有考虑到作业和TaskTracker内存使用情况,而导致TaskTracker内存溢出的问题,提出了基于内存控制的调度算法。该算法以公平调度器为基础,根据Hadoop中与作业内存相关的配置信息,估算每个作业运行时所需的内存大小,对公平调度器的调度算法进行了优化。此算法在作业调度的时候考虑了作业所需内存和集群中机器内存使用情况,该算法保留了公平调度器公平高效的优点,同时使集群内存使用达到均衡,避免TaskTracker内存溢出甚至宕机情况。实验表明该调度算法能够有效的避免TaskTracker内存溢出和宕机的情况,,同时,在集群中有较多的大内存作业运行的时候能够提高集群的效率。 本文的两个方案均已应用于国内最大电子商务公司的生产集群上,该生产集群的节点数超过3000台。
【图文】:
7 图 2.1 Hadoop 架构统的分级文件系统,可以创er/slaves 模型,master 节点护程序,负责记录文件是如文件的访问。Datanode 是文件 这个后台程序负责把 HDFS时候,先由 NameNode 告诉直接与这个 DataNode 服务器作。文件时,将数据文件分割成许,每个数据块存储在一个 D
图 2.2 MapReduce 框架e 编程模型要应用于海量数据的并行运算。MapReduce 在功能数,用户定义一个 Map 函数来来读取输入文件中的的 Map 任务进行并行的处理,即把读入的一个个y, value>对;另一部分是 Reduce 函数,用户再定义中国结果的有着相同 key 的 values 合并起来。架中作业的运行是基于<key, value>对,即数据的理之后生成的结果也是一个个<key, value>对,只是处型不一样。一个 MapReduce 作业的执行过程以及数> —> list<k2,v2>,list<v2>> —> <k3,v3>
【学位授予单位】:杭州电子科技大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP302.8;TP306
本文编号:2531801
【图文】:
7 图 2.1 Hadoop 架构统的分级文件系统,可以创er/slaves 模型,master 节点护程序,负责记录文件是如文件的访问。Datanode 是文件 这个后台程序负责把 HDFS时候,先由 NameNode 告诉直接与这个 DataNode 服务器作。文件时,将数据文件分割成许,每个数据块存储在一个 D
图 2.2 MapReduce 框架e 编程模型要应用于海量数据的并行运算。MapReduce 在功能数,用户定义一个 Map 函数来来读取输入文件中的的 Map 任务进行并行的处理,即把读入的一个个y, value>对;另一部分是 Reduce 函数,用户再定义中国结果的有着相同 key 的 values 合并起来。架中作业的运行是基于<key, value>对,即数据的理之后生成的结果也是一个个<key, value>对,只是处型不一样。一个 MapReduce 作业的执行过程以及数> —> list<k2,v2>,list<v2>> —> <k3,v3>
【学位授予单位】:杭州电子科技大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP302.8;TP306
【参考文献】
相关期刊论文 前1条
1 刘晓洁;黄永佳;;基于Linux的双机热备系统的实现技术[J];计算机应用研究;2007年04期
本文编号:2531801
本文链接:https://www.wllwen.com/wenyilunwen/guanggaoshejilunwen/2531801.html