作品简介

本书从应用角度系统讲解了YARN的基本库和组件用法、应用程序设计方法、YARN上流行的各种计算框架(MapReduce、Tez、Storm、Spark),以及多个类YARN的开源资源管理系统(Corona和Mesos);从源代码角度深入分析YARN的设计理念与基本架构、各个组件的实现原理,以及各种计算框架的实现细节。

全书共四部分13章:第一部分(第1~2章)主要介绍了如何获取、阅读和调试Hadoop的源代码,以及YARN的设计思想、基本架构和工作流程;第二部分(第3~7章)结合源代码详细剖析和讲解了YARN的第三方开源库、底层通信库、服务库、事件库的基本使用和实现细节,详细讲解了YARN的应用程序设计方法,深入讲解和分析了ResourceManager、资源调度器、NodeManager等组件的实现细节;第三篇(第8~10章)则对离线计算框架MapReduce、DAG计算框架Tez、实时计算框架Storm和内存计算框架Spark进行了详细的讲解;第四部分(第11~13章)首先对Facebook Corona和Apache Mesos进行了深入讲解,然后对YARN的发展趋势进行了展望。附录部分收录了YARN安装指南、YARN配置参数以及Hadoop Shell命令等非常有用的资料。

董西成:资深Hadoop技术实践者和研究者,对Hadoop技术有非常深刻的认识和理解,有着丰富的实践经验。曾经参与了商用Hadoop原型的研发,以及人民搜索的分布式日志系统、全网图片搜索引擎、Hadoop调度器等多个项目的设计与研发。对Hadoop的源代码有深入的研究,能通过修改Hadoop的源代码来完成二次开发和解决各种复杂的问题。热衷于分享,撰写了大量关于Hadoop的技术文章并分享在自己的博客上,因为文章技术含量高,所以非常受欢迎,这使得他在Hadoop技术圈内颇具知名度和影响力。

作品目录

  • 前言
  • 第一部分 准备篇
  • 第1章 环境准备
  • 1.1 准备学习环境
  • 1.2 获取Hadoop源代码
  • 1.3 搭建Hadoop源代码阅读环境
  • 1.4 Hadoop源代码组织结构
  • 1.5 Hadoop初体验
  • 1.6 编译及调试Hadoop源代码
  • 1.7 小结
  • 第2章 YARN设计理念与基本架构
  • 2.1 YARN 产生背景
  • 2.2 Hadoop 基础知识
  • 2.3 YARN 基本设计思想
  • 2.4 YARN 基本架构
  • 2.5 YARN 工作流程
  • 2.6 多角度理解YARN
  • 2.7 本书涉及内容
  • 2.8 小结
  • 第二部分 YARN 核心设计篇
  • 第3章 YARN基础库
  • 3.1 概述
  • 3.2 第三方开源库
  • 3.3 底层通信库
  • 3.4 服务库与事件库
  • 3.5 状态机库
  • 3.6 源代码阅读引导
  • 3.7 小结
  • 3.8 问题讨论
  • 第4章 YARN应用程序设计方法
  • 4.1 概述
  • 4.2 客户端设计
  • 4.3 ApplicationMaster设计
  • 4.4 YARN 应用程序实例
  • 4.5 源代码阅读引导
  • 4.6 小结
  • 4.7 问题讨论
  • 第5章 ResourceManager 剖析
  • 5.1 概述
  • 5.2 用户交互模块
  • 5.3 ApplicationMaster管理
  • 5.4 NodeManager管理
  • 5.5 Application管理
  • 5.6 状态机管理
  • 5.7 几个常见行为分析
  • 5.8 安全管理
  • 5.9 容错机制
  • 5.10 源代码阅读引导
  • 5.11 小结
  • 5.12 问题讨论
  • 第6章 资源调度器
  • 6.1 资源调度器背景
  • 6.2 HOD调度器
  • 6.3 YARN资源调度器的基本架构
  • 6.4 YARN层级队列管理机制
  • 6.5 Capacity Scheduler
  • 6.6 Fair Scheduler
  • 6.7 其他资源调度器介绍
  • 6.8 源代码阅读引导
  • 6.9 小结
  • 6.10 问题讨论
  • 第7章 NodeManager剖析
  • 7.1 概述
  • 7.2 节点健康状况检测
  • 7.3 分布式缓存机制
  • 7.4 目录结构管理
  • 7.5 状态机管理
  • 7.6 Container生命周期剖析
  • 7.7 资源隔离
  • 7.8 源代码阅读引导
  • 7.9 小结
  • 7.10 问题讨论
  • 第三部分 计算框架篇
  • 第8章 离线计算框架MapReduce
  • 8.1 概述
  • 8.2 MapReduce客户端
  • 8.3 MRAppMaster工作流程
  • 8.4 MR作业生命周期及相关状态机
  • 8.5 资源申请与再分配
  • 8.6 Container启动与释放
  • 8.7 推测执行机制
  • 8.8 作业恢复
  • 8.9 数据处理引擎
  • 8.10 历史作业管理器
  • 8.11 MRv1与MRv2对比
  • 8.12 源代码阅读引导
  • 8.13 小结
  • 8.14 问题讨论
  • 第9章 DAG计算框架Tez
  • 9.1 背景
  • 9.2 Tez数据处理引擎
  • 9.3 DAG Master实现
  • 9.4 优化机制
  • 9.5 Tez应用场景
  • 9.6 与其他系统比较
  • 9.7 小结
  • 第10章 实时/内存计算框架Storm/Spark
  • 10.1 Hadoop MapReduce的短板
  • 10.2 实时计算框架Storm
  • 10.3 内存计算框架Spark
  • 10.4 小结
  • 第四部分 高级篇
  • 第11章 Facebook Corona剖析
  • 11.1 概述
  • 11.2 Corona设计特点
  • 11.3 工作流程介绍
  • 11.4 主要模块介绍
  • 11.5 小结
  • 第12章 Apache Mesos剖析
  • 12.1 概述
  • 12.2 底层网络通信库
  • 12.3 Mesos服务
  • 12.4 Mesos工作流程
  • 12.5 Mesos资源分配策略
  • 12.6 Mesos容错机制
  • 12.7 Mesos应用实例
  • 12.8 Mesos与YARN对比
  • 12.9 小结
  • 第13章 YARN总结与发展趋势
  • 13.1 资源管理系统设计动机
  • 13.2 资源管理系统架构演化
  • 13.3 YARN发展趋势
  • 13.4 小结
  • 附录A YARN安装指南
  • 附录B YARN配置参数介绍
  • 附录C Hadoop Shell命令介绍
  • 附录D 参考资料
展开全部