欢迎来到天天文库
浏览记录
ID:39256708
大小:613.00 KB
页数:14页
时间:2019-06-28
《Overall Design of Hadoop C Extension英文文献资料》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、OverallDesignofHadoopC++ExtensionHadoopC++Extension:AFrameworkforMakingMapReduceMoreStableandFaster总体设计模块名称HadoopC++Extension所属系统Baidu/sys/dpf/hadoop模块负责人杨栋韩富昇夏鹏项目负责人王守彦文档提交日期2009-12-8百度在线网络技术(北京)有限公司-14-OverallDesignofHadoopC++Extension修改记录No版本号修改内容简介修改日期修改人10.1框架设计初稿2009-12-9王守彦,杨栋21.0完成总体设计2010-1
2、-8杨栋,韩富昇,夏鹏百度在线网络技术(北京)有限公司-14-OverallDesignofHadoopC++Extension目录总体设计-1-1.背景简介-4-2.框架设计-5-2.1总体架构-5-2.2数据通路-5-2.3消息序列-7-3.用户接口-8-4.模块设计-11-4.1HceSubmitter-11-4.2HceMapRunner&HceReduceRunner-11-4.3CommunicationProtocol-11-4.4Status&Progress-12-4.5User-ClassRegistration-12-4.6MapOutputCollector&Reduc
3、eOutputCollector-12-4.7ReduceInputReader-12-4.8LineRecordReader&LineRecordWriter-13-4.9IFileReader&IFileWriter-13-4.10Combiner-13-4.11Committer-13-4.12Compression-13-4.13SequenceFileReader&SequenceFileWriter-13-5.相关工作-14-6.参考资料-14-百度在线网络技术(北京)有限公司-14-OverallDesignofHadoopC++Extension1.背景简介从实际生产得到的经验
4、显示,执行大数据量的MapReduce计算,当map数达到数万个,Reduce数达到数千个是,Hadoop系统JVM对于节点内存的管理显得低效。Java通过GC机制来管理内存,即当某个阈值到达之后才会回收内存,当多个一个节点上有多个JVM同时运行时,Java的内存管理变得低效,影响计算的稳定性和效率。或许替换新的GC机制能够满足当前计算的需要,但是本着彻底解决问题的决心,我们计划将数据处理的相关部分全部迁移到C++空间,希望能够在解决内存问题的基础上获得额外的效率优化。在HadoopMapReduce框架中,调度和数据处理是两个比较独立的模块,由调度系统决定任务的分配和故障处理。在任务分配之后
5、,调度系统启动相应的处理进程对需要的数据进行处理。基于这个调度和处理非强耦合的HadoopMapReduce框架,为了更有效、更方便地使用C++方式进行MapReduce数据处理,Baidu/SYS/SOSGroup决定开启新的项目,代号HadoopC++Extension(简称HCE),旨在实现一套完整的C++数据处理机制,允许用户使用默认或自行定制的功能对象来处理数据,同时在C++空间更为直接地管理TaskTracker占用内存,并希望带来处理效率上的提升。HCE项目总的计划为两期:第一期计划是实现并维护HCE第一个可用版本,包括框架部分和各个独立的功能模块,涉及LineRecoredRe
6、ader/LineRecoredWriter、IFileReader/IFileWriter、SequenceFileReader/SequenceFileWriter、HadoopOutputCommitter、MapOutputCollector/CombineOutputCollector/ReduceOutputCollector及支持Lzo/Zlib的流式压缩模块等等。其中,输入数据的切分仍由Java的InputFormat完成;Reduce处理中,Shuffle和MergeSort仍由Java完成,其余的MapReduce数据处理通路将全部迁移到C++实现。第二期计划是实现新的Sh
7、uffle和Sort方式,这部分仍在计划中。百度在线网络技术(北京)有限公司-14-OverallDesignofHadoopC++Extension2.框架设计2.1总体架构图1HadoopMapreduce框架示意图图1是HadoopMapreduce的框架示意图,JobTracker负责调度,TaskTracker启动ChildJava执行task,Task相关的数据处理是由ChildJav
此文档下载收益归作者所有