Hadoop技术内幕:深入解析MapReduce架构设计与实现原理(大数据技术丛书)_高清.pdf)
Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 (大数据技术丛书)_高清.pdf )日录前言为什么要写这本书读者对象如何阅读本书勘误和支持致谢第一部分基础篇第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 I ladoo MapReduce设计目标2.3 MapReduce编程模型概述24 Hadoop基本架构2.5 Hadoop MapReduce作业的生命周期2.6小结第二部分 MapReduce编程模型篇第3章 MapReduce编程模型3. MapReduce编程模型概述3.2 MapReduce API基本概念3.3 Java apl解析3.4非 Java ap解析3.51 hadoop工作流3.6小结第三部分 MapReduce核心设计篇第4章 I ladoo RPC框架解析4.1 Hadoop RPC框架概述4.2Java基础知识4.3 Hadoop RPC基本框架分析44 MapReduce通信协议分析4.5小结第5章作业提交与初始化过稈分析5.1作业提交与初始化概述5.2作业提交过程详解5.3作业初始化过程详解5.4 I hadoop Distributed Cache原理分析5.5小结第6章 Job Tracker内部实现剖析6.1 Job Tracker概述62 Job Tracker启动过程分析6.3心跳接收与应答64Job和Task运行时信息维护6.5容错机66任务推测执行原理6.7 Hadoop源管理6.8小结第7章 TaskTracker内部实现剖析7.1 TaskTracker概述7.2 Task tracker启动过程分析7.3心跳机制7.4 TaskTracke行为分析7.5作业目录管理7.6启动新任务7.7小结第8章Task运行过程分析8.1Task运行过程概述8.2基本数据结构和算法8.3 Map Task内部实现8.4 Reduce task内部实现8.5 Map/Reduce Task优化86小结第四部分 Map reduce高级篇第9章 Hadoop性能调优9.1概述92从管理员角度进行调优93从用户角度进行调优94小结第10章 Hadoop多用户作业调度器10.1多用户调度器产生背景10.2 HOD10.3 Hadoop队列管坦机制10.4 Capacity Scheduler实现10.5 Fair scheduler实现10.6其他 Hadoop调度器介绍10.7小结第11章 Hadoop安全机制1.1 Hadoop安全机制概述11.2基础知识113 Hadoop安全机制实现114应用场景总结11.5小结第12章下一代 Mapreduce框架12.1第一代 MapReduce框架的局限性12.2下一代 MapReduce框架概述12.3 Apache YARN12. 4 Facebook Corona12.5 Apache Mesos12.6小结附录A安装 Hadoop过程中可能存在的问题及解决方案附录 B Hadoop默认HTP端口号以及HTP地址参考资料前言为什么要写这本书突然之间,大数据一下子就火”了,开源软件 Hadoop也因此水涨船高。得益于一些国际领先厂商,尤其是 FaceBookYahoo!以及阿里巴巴等互联网巨头的现身说法, Hadoop被看成大数据分析的“神器”。IDC在对中国木来儿年的预测中就专门提到了大数据,其认为未来几年,会有越来越多的企业级用户试水大数据平台和应用,而这之中, Hadoop将成为最耀眼的“明星”b尽管 Hadoop整个生态系统是开源的,但是,于它包含的软件种类过多,且版本升级过快,大部分公司,尤其是一些中小型公司,难以在冇限的时间内快速掌握 Hadoop蕴含的价值。此外, Hadoop自身版本的多样化也给很多研发人员带来了很大的学习负担。尽管当前市面上已有很多参考书籍,比如《 I ladoo: The Definitive Guide》、《 I ladoo m Action》、《 Pro l ladoo》Hadoop operations》等,但是,至今还没有一本书能够深入地剖析Hado内部的实现细节,比如 Job Tracker实现、作业调度器实现等。也正因如北,很多adop初学者和研发人员只能参考网络上一些岺星的源代码分析的文章,自己一点一点地阅读源代码,缓慢地学习 Hadoop。而本书正是为了解决以上各种问题而编写的,它是国内第一本深λ削析 Hadoop内部实现细节的书籍。本书以 Hadoop1.0为基础,深入剖析了 Hadoop mapreduce各个组件的实现细节,包括RPC框架、 Job tracker头现TaskTracker实现、Task实现和作业调度器实现等。书中不仅详细介绍了 MapReduce各个组件的内部实现原坦,而且结合源代码进行了深入的剖析,使读者可以快速全面地掌握 Hadoop mapreduce设计原理和实现细节。读者对象(1) Hadoop二次开发人员Hadoopifi于在扩屐性、容错性和稳定性等方面的诸多优点,已被越来越多的公司采用。而为了减少开发成本,大部分公司在 Hadoop基础上进行了二次开发,以打造属于公司内部的 Hadoop平台。对于 Hadoop二次开发人员来说,深入而又全面地了斛Iladoopl的设计原埋与实现细节是修改 I ladoo内核的前提,而本书可帮助这部分读者快速而又全面地了解 I ladoo实现细节。(2) Hadoop应用开发人员如果要利用 Hadoop进行高级应用开发,仅掌握Hado基本使用方法是远远不够的,必须对 Hadoop框架的设计原理、架构和运作机制有一定的了解。对这部分读者而言,本书将带领他们全面了解 Hadoop设计和实现原理,加深对 Hadoop框架的理解,提高川发水平,从而编写出更加高效的 Mapreduce应用程序。(3) Hadoop运维工程师对于·名合格的 Hadoop运維工程师而言,适当地了解 Hadoop框架的设计原理、架构和运作机制是十分有帮助的。这不仅可以使 Hadoop运维人员更快地排除各种可能的 Hadoop改障,还可以让 Hadoop运维人员与研发人员进行更有效的沟通。通过阅读这本书, Hadoop运维人员可以了解到很多其他书中无法获取的 Hadoop实现细节(4)开源软件爱好老Hadoop是开源软件中的佼佼者。它在实现的过程中吸收∫很多开源领域的优秀思想,同时有很多值得学习的创新。尤为值得一提的是,本书分析 Hadoop架构设计和实现原理的方式也许值得所有开源软件爱好者学习和借鉴。通过阅读本书,这部分读者不仅能领略到开源软件的优秀思想,还可以掌握分析开源软件源代码的方法和技巧,从而进一步提高使用开源软件的效率和质量如何阅读本书本书分为四大部分(不包括附录)第一部分为基础篇,简单圯介绍 Hadoop的阅读环境搭建和基本设计架构,帮助读者了解一些基础背景知识。第二部分为 Mapreduce编稈模犁篇,着重讲解 Mapreduce编稈接口,卞要包括两套编稈接口,分别是旧API和新API第三部分为 Map reduce核心设计篇,主要讲解 Hadoop mapreduce钓运行时环境,包括RPC框架、客户端、 Jobtrackeer\TaskTracker和Tak等内部实现细节。第四部分为 MapReduce高级篇,主要讲解 Hadoop mapreduce中的一些高级特性和未来发展趋势,包括多用户作业调度器、安全机制和下一代 Mapreduce框架等。另外,本书最后还添加了几个附录:附录A为安装 Hadoop程中可能存在的问题及解决方案:附录B为 Hadoop默认HTP端口号以及HITP地址。参考资料中包括了本书写作过程中参考的书籍、论文、 Hadoop jira和网络资源如果你是一名经验丰富的资深用户,能够理解 Hadoop的相关基础知识和使用技巧,那么你可以直接闶读第三部分和第四部分。但是,如果你是一名初学者,请一定从第l章的基础埋论知识开始学习。勘误和攴持由于笔者的水平有限,加之编写时间仓促,书中雉免会出现一些锖误或者不准确的地方,恳请读者批评指正。为此,笔者特意创建了一个在线支持与应急方案的站点htp/ hadoop123cm。你可以将书中的错误发布在Bg劫误表页面中。如果你遇到问题可以访问Q&A页面,我将尽量在线上为读者提供最满意的解答。如果你有什么宝贵意见,欢迎发送邮件至dongcheng@yahoo.com,期行能够得到你的真挚反馈。致谢感谢我的导师廖华明副研究员。在我读研没空顺及项目的时侯,她给了我一次又一次的鼓励,她甚至专门为我写书留出空闲时间。在廖老师的身边,我还学会了很多专业知识以外的东西。感谢腾讯的蔡斌老师。正是由于他的推荐,才使本书的出版成为可能感谢机械工业岀版社华章公司的杨福川老师和孙海亮老师。是他们在这一年多的时间中始终文持着我的写作,是他们的鼓励和帮助使我顺利完成了本书的编写工作感谢对本书部分章节提出改进建议的何鹏、姜冰、郑伂等人。另外,感谢给我提供各和帮助的战科宇、周礼、刘晏辰、孟椿智、王群、王颎、曹聪、朱雪峰等人。最后,感谢我父母的养育之恩,感谢兄长的鼓励和支持,感谢他们时时刻刻给我信心和力量!感谢我的女朋友颛悦对我生活的悉心照料与琐事上的宽容。谨以此书献给我最亲爱的家人,以及众多热爱 Hadoop的朋友们!董西戊于北京
下载地址
用户评论