目 录 前言 为什么要写这本书 读者对象 如何阅读本书 勘误和支持 致谢 第一部分 基础篇 第1章 阅读源代码前的准备 1.1 准备源代码学习环境 1.2 获取Hadoop源代码 1.3 搭建Hadoop源代码阅读环境 1.4 Hadoop源代码组织结构 1.5 Hadoop初体验 1.6 编译及调试Hadoop源代码 1.7 小结 第2章 MapReduce设计理念与基本架构 2.1 Hadoop发展史 2.2 Hadoop MapReduce设计目标 2.3 MapReduce编程模型概述 2.4 Hadoop基本架构 2.5 Hadoop MapReduce作业的生命周期 2.6 小结 第二部分 MapReduce编程模型篇 第3章 MapReduce编程模型 3.1 MapReduce编程模型概述 3.2 MapReduce API基本概念 3.3 Java API解析 3.4 非Java API解析 3.5 Hadoop工作流 3.6 小结 第三部分 MapReduce核心设计篇 第4章 Hadoop RPC框架解析 4.1 Hadoop RPC框架概述 4.2 Java基础知识 4.3 Hadoop RPC基本框架分析 4.4 MapReduce通信协议分析 4.5 小结 第5章 作业提交与初始化过程分析 5.1 作业提交与初始化概述 5.2 作业提交过程详解 5.3 作业初始化过程详解 5.4 Hadoop DistributedCache原理分析 5.5 小结 第6章 JobTracker内部实现剖析 6.1 JobTracker概述 6.2 JobTracker启动过程分析 6.3 心跳接收与应答 6.4 Job和Task运行时信息维护 6.5 容错机制 6.6 任务推测执行原理 6.7 Hadoop资源管理 6.8 小结 第7章 TaskTracker内部实现剖析 7.1 TaskTracker概述 7.2 TaskTracker启动过程分析 7.3 心跳机制 7.4 TaskTracker行为分析 7.5 作业目录管理 7.6 启动新任务 7.7 小结 第8章 Task运行过程分析 8.1 Task运行过程概述 8.2 基本数据结构和算法 8.3 Map Task内部实现 8.4 Reduce Task内部实现 8.5 Map/Reduce Task优化 8.6 小结 第四部分 MapReduce高级篇 第9章 Hadoop性能调优 9.1 概述 9.2 从管理员角度进行调优 9.3 从用户角度进行调优 9.4 小结 第10章 Hadoop多用户作业调度器 10.1 多用户调度器产生背景 10.2 HOD 10.3 Hadoop队列管理机制 10.4 Capacity Scheduler实现 10.5 Fair Scheduler实现 10.6 其他Hadoop调度器介绍 10.7 小结 第11章 Hadoop安全机制 11.1 Hadoop安全机制概述 11.2 基础知识 11.3 Hadoop安全机制实现 11.4 应用场景总结 11.5 小结 第12章 下一代MapReduce框架 12.1 第一代MapReduce框架的局限性 12.2 下一代MapReduce框架概述 12.3 Apache YARN 12.4 Facebook Corona 12.5 Apache Mesos 12.6 小结 附录A 安装Hadoop过程中可能存在的问题及解决方案 附录B Hadoop默认HTTP端口号以及HTTP地址 参考资料 前言 为什么要写这本书 突然之间,大数据一下子就“火”了,开源软件Hadoop也因此水涨船高。得益于一些国际领先厂商,尤其是FaceBook、 Yahoo!以及阿里巴巴等互联网巨头的现身说法,Hadoop被看成大数据分析的“神器”。IDC在对中国未来几年的预测中就专门提 到了大数据,其认为未来几年,会有越来越多的企业级用户试水大数据平台和应用,而这之中,Hadoop将成为最耀眼的“明星”。 尽管Hadoop整个生态系统是开源的,但是,由于它包含的软件种类过多,且版本升级过快,大部分公司,尤其是一些中小 型公司,难以在有限的时间内快速掌握Hadoop蕴含的价值。此外,Hadoop自身版本的多样化也给很多研发人员带来了很大的学 习负担。尽管当前市面上已有很多参考书籍,比如《Hadoop:The Definitive Guide》、《Hadoop in Action》、《Pro Hadoop》、 《Hadoop Operations》等,但是,至今还没有一本书能够深入地剖析Hadoop内部的实现细节,比如JobTracker实现、作业调度器 实现等。也正因如此,很多Hadoop初学者和研发人员只能参考网络上一些零星的源代码分析的文章,自己一点一点地阅读源代 码,缓慢地学习Hadoop。而本书正是为了解决以上各种问题而编写的,它是国内第一本深入剖析Hadoop内部实现细节的书籍。 本书以Hadoop 1.0为基础,深入剖析了Hadoop MapReduce中各个组件的实现细节,包括RPC框架、JobTracker实现、 TaskTracker实现、Task实现和作业调度器实现等。书中不仅详细介绍了MapReduce各个组件的内部实现原理,而且结合源代码进 行了深入的剖析,使读者可以快速全面地掌握Hadoop MapReduce设计原理和实现细节。 读者对象 (1)Hadoop二次开发人员 Hadoop由于在扩展性、容错性和稳定性等方面的诸多优点,已被越来越多的公司采用。而为了减少开发成本,大部分公司 在Hadoop基础上进行了二次开发,以打造属于公司内部的Hadoop平台。对于Hadoop二次开发人员来说,深入而又全面地了解 Hadoop的设计原理与实现细节是修改Hadoop内核的前提,而本书可帮助这部分读者快速而又全面地了解Hadoop实现细节。 (2)Hadoop应用开发人员 如果要利用Hadoop进行高级应用开发,仅掌握Hadoop基本使用方法是远远不够的,必须对Hadoop框架的设计原理、架构和 运作机制有一定的了解。对这部分读者而言,本书将带领他们全面了解Hadoop的设计和实现原理,加深对Hadoop框架的理解, 提高开发水平,从而编写出更加高效的MapReduce应用程序。 (3)Hadoop运维工程师 对于一名合格的Hadoop运维工程师而言,适当地了解Hadoop框架的设计原理、架构和运作机制是十分有帮助的。这不仅可 以使Hadoop运维人员更快地排除各种可能的Hadoop故障,还可以让Hadoop运维人员与研发人员进行更有效的沟通。通过阅读这 本书,Hadoop运维人员可以了解到很多其他书中无法获取的Hadoop实现细节。 (4)开源软件爱好者 Hadoop是开源软件中的佼佼者。它在实现的过程中吸收了很多开源领域的优秀思想,同时有很多值得学习的创新。尤为值 得一提的是,本书分析Hadoop架构设计和实现原理的方式也许值得所有开源软件爱好者学习和借鉴。通过阅读本书,这部分读 者不仅能领略到开源软件的优秀思想,还可以掌握分析开源软件源代码的方法和技巧,从而进一步提高使用开源软件的效率和质 量。 如何阅读本书 本书分为四大部分(不包括附录): 第一部分为基础篇,简单地介绍Hadoop的阅读环境搭建和基本设计架构,帮助读者了解一些基础背景知识。 第二部分为MapReduce编程模型篇,着重讲解MapReduce编程接口,主要包括两套编程接口,分别是旧API和新API。 第三部分为MapReduce核心设计篇,主要讲解Hadoop MapReduce的运行时环境,包括RPC框架、客户端、JobTracker、 TaskTracker和Task等内部实现细节。 第四部分为MapReduce高级篇,主要讲解Hadoop MapReduce中的一些高级特性和未来发展趋势,包括多用户作业调度器、安 全机制和下一代MapReduce框架等。 另外,本书最后还添加了几个附录:附录A为安装Hadoop过程中可能存在的问题及解决方案;附录B为Hadoop默认HTTP端口 号以及HTTP地址。参考资料中包括了本书写作过程中参考的书籍、论文、Hadoop Jira和网络资源。 如果你是一名经验丰富的资深用户,能够理解Hadoop的相关基础知识和使用技巧,那么你可以直接阅读第三部分和第四部 分。但是,如果你是一名初学者,请一定从第1章的基础理论知识开始学习。 勘误和支持 由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者特 意创建了一个在线支持与应急方案的站点http://hadoop123.com。你可以将书中的错误发布在Bug勘误表页面中。如果你遇到问题, 可以访问Q&A页面,我将尽量在线上为读者提供最满意的解答。如果你有什么宝贵意见,欢迎发送邮件至 dongxicheng@yahoo.com,期待能够得到你的真挚反馈。 致谢 感谢我的导师廖华明副研究员。在我读研没空顾及项目的时候,她给了我一次又一次的鼓励,她甚至专门为我写书留出空闲 时间。在廖老师的身边,我还学会了很多专业知识以外的东西。 感谢腾讯的蔡斌老师。正是由于他的推荐,才使本书的出版成为可能。 感谢机械工业出版社华章公司的杨福川老师和孙海亮老师。是他们在这一年多的时间中始终支持着我的写作,是他们的鼓励 和帮助使我顺利完成了本书的编写工作。 感谢对本书部分章节提出改进建议的何鹏、姜冰、郑伟伟等人。另外,感谢给我提供各种帮助的战科宇、周礼、刘晏辰、孟 椿智、王群、王颖、曹聪、朱雪峰等人。 最后,感谢我父母的养育之恩,感谢兄长的鼓励和支持,感谢他们时时刻刻给我信心和力量!感谢我的女朋友颛悦对我生活 的悉心照料与琐事上的宽容。 谨以此书献给我最亲爱的家人,以及众多热爱Hadoop的朋友们! 董西成 于北京 第一部分 基础篇 本部分内容 阅读源代码前的准备 MapReduce设计理念与基本架构 第1章 阅读源代码前的准备 一般而言,在深入研究一个系统的技术细节之前,先要进行一些基本的准备工作,比如,准备源代码阅读环境,搭建运行环 境并尝试使用该系统等。对于Hadoop而言,由于它是一个分布式系统,且由多种守护进程组成,具有一定的复杂性,如果想深 入学习其设计原理,仅仅进行以上几项准备工作是不够的,还要学习一些调试工具的使用方法,以便对Hadoop源代码进行调 试、跟踪。边用边学,这样才能事半功倍。 本章的编写目的是帮助读者构建一个“高效”的Hadoop源代码学习环境,包括Hadoop源代码阅读环境、Hadoop使用环境和

pdf文档 Hadoop技术内幕:深入理解MapReduce架构设计与实现原理

计算机 > 大数据 > Hadoop > 文档预览
358 页 0 下载 446 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
Hadoop技术内幕:深入理解MapReduce架构设计与实现原理 第 1 页 Hadoop技术内幕:深入理解MapReduce架构设计与实现原理 第 2 页 Hadoop技术内幕:深入理解MapReduce架构设计与实现原理 第 3 页 Hadoop技术内幕:深入理解MapReduce架构设计与实现原理 第 4 页 Hadoop技术内幕:深入理解MapReduce架构设计与实现原理 第 5 页
下载文档到电脑,方便使用
还有 353 页可预览,继续阅读
本文档由 user2021-02-28 15:22:30上传分享
给文档打分
您好可以输入 255 个字符
DocHub文库的中文名是什么?( 答案:多哈 )
评论列表
  • 暂时还没有评论,期待您的金玉良言