周维编著的《Hadoop2.0-YARN核心技术实践》 基于长期的教学实践以及同国内外公司的交流合 作编写完成,系统介绍了Hadoop 2.0-YARN的基本概 念与运行模式。全书共分为7章。内容涵盖Hadoop 2.0的架构、重要组件、主要计算模式、资源调度等 重要问题。第1章回顾了YARN的起源,并与Hadoop 1.0进行了对比分析。第2章介绍了YARN的基本框架, 对YARN中重要的几个组件,如资源管理、节点管理 、应用程序管理等做了说明。第3章通过Hadoop 2.0 -YARN的安装、编译,以及简单的MapReduce调试示例 ,让读者能够迅速掌握YARN的基本操作,使得读者有 一个初步的实践体验。第4章对YARN的通信原理和过 程进行讨论,通过Protocol Buffer、YARN RPC的实 例分析让读者理解YARN的通信协调过程。之后转入对 YARN 状态机进行深入分析,详细介绍了YARN中4类状 态机的转换过程,同时提供了YARN状态机监控软件设 计案例。第5章对基于YARN的几种计算模式 (MapReduce、Storm、Spark)进行了讨论,每一种 模式都提供了相应的安装步骤、案例分析。第6章叙 述了YARN调度器,详细分析了YARN资源调度负载模拟 器——SLS和Google第三代调度器omega的基本原理, 并分别给出了两种调度器的运行实例。第7章通过Tez 和显示工作流引擎设计,使得读者对YARN工作流运行 情况有一定了解。
本书大的特点是理论与实践结合,通过示例分 析的形式降低了读者的学习难度,避免了理论学习的 枯燥性,本书的部分案例直接选自BAT中的工程实例 ,这使得本书更具有实战性。广大本科和研究生同学 ,可以参照本书实例,为他们进行分布式、云计算平 台学习,专业课项目设计或毕业论文提供参考。本书 也可作为业界研发人员的工程实践参考。
周维,2008年获得中国科学院研究生院博士学位,主要研究方向为P2P、分布式、云计算。现任职于云南大学软件学院,是中国计算机学会西南网络与MIS专委会委员、云南省通信学会理事。发表多篇文章,一贯强调理论与实际的结合,注重扎实的数据结构和算法功底,近几年来,先后培养多位学生到国内外公司或学术研究机构。
第1章 YARN的前世今生
1.1 Hadoop基本情况回顾
1.2 为什么我们需要YARN
1.3 YARN和 Hadoop 1.0对比分析
1.3.1 体系结构对比
1.3.2 运算框架对比
1.4 Hadoop 生态系统
1.5 小结
第2章 YARN基本框架
2.1 YARN基本框架
2.2 ResourceManager
2.3 NodeManager
2.4 ApplicationMaster
2.5 YARN中应用程序的运行过程
第3章 YARN编程初步
3.1 YARN 安装与配置
3.1.1 环境准备
3.1.2 伪分布式安装
3.1.3 分布式安装
3.2 源码阅读及编译
3.2.1 Maven的介绍及安装
3.2.2 编译前准备
3.2.3 YARN源码阅读环境配置
3.2.4 YARN源码编译
3.3 MapReduce实例
3.3.1 Word Count
3.3.2 Deduplication
3.3.3 Sort
3.4 HBase编程初步
3.4.1 HBase介绍
3.4.2 HBase安装与配置
3.4.3 HBase开发环境配置及实例
第4章 YARN核心组件分析
4.1 通信组件Protocol Buffer
4.1.1 什么是Protocol Buffer
4.1.2 YARN中的Protocol Buffer
4.1.3 如何编写Protocol Buffer
4.1.4 Protocol Buffer代码分析
4.2 Hadoop 1.0 RPC 和 YARN RPC
4.2.1 什么是RPC
4.2.2 RPC通信模型
4.2.3 Hadoop 1.0 RPC的实现过程
4.2.4 Hadoop 1.0 RPC的应用
4.2.5 YARN RPC
4.2.6 YARN RPC通信案例解析
4.2.7 YARN RPC源代码导读
4.3 YARN状态机分析
4.3.1 RMApp状态机
4.3.2 RMAppAttempt状态机
4.3.3 RMNode状态机
4.3.4 RMContainer状态机
4.3.5 应用程序在RM中的完整运行流程分析
4.3.6 状态机源代码导读
4.3.7 YARN状态机监控软件设计
4.4 HDFS Federation
4.4.1 HDFS的层次
4.4.2 当前的HDFS架构
4.4.3 HDFS Federation
4.4.4 Federation HDFS与当前HDFS的比较
第5章 YARN中几种计算模型
5.1 基于YARN的MapReduce进阶
5.1.1 Reduce Side Join
5.1.2 Map Side Join
5.1.3 并行聚类Kmeans算法设计与实现
5.2 Storm on YARN
5.2.1 Storm基本原理
5.2.2 Storm on YARN
5.2.3 Storm单机模式安装
5.2.4 Storm on YARN安装
5.2.5 基于Storm on YARN的实时出租车管理系统
5.3 Spark on YARN
5.3.1 Spark简介
5.3.2 Spark基本原理
5.3.3 Spark的部署及开发环境搭建
5.3.4 Spark MLlib介绍
5.3.5 Spark的优化配置
5.3.6 Spark的编程案例
5.3.7 Spark的应用案例
第6章 YARN资源调度器
6.1 Hadoop资源调度器回顾
6.2 YARN资源调度器
6.2.1 Capacity Scheduler
6.2.2 Fair Scheduler
6.2.3 调度器比较
6.3 YARN调度负载模拟器-SLS
6.3.1 综述
6.3.2 参数和命令
6.3.3 实例一 快速开始
6.3.4 实例二 定制运行
6.4 Google第三代调度器分析
6.4.1 中央式调度器模式
6.4.2 双层调度器模式
6.4.3 共享状态调度器
6.4.4 Google第三代调度器Omega
6.4.5 Omega集群调度模拟器-CSS
第7章 YARN工作流分析
7.1 Tez on YARN
7.1.1 Tez基本原理
7.1.2 Tez环境安装
7.1.3 Tez在Hive引擎中的优化作用
7.1.4 小结
7.2 显式工作流引擎
7.2.1 Hadoop工作流引擎
7.2.2 某大型互联网公司部门使用的工作流引擎
7.2.3 应用举例
7.2.4 对比
7.2.5 小结
参考文献