大数据处理系统:Hadoop源代码情景分析
内容简介:
Hadoop是目前重要的一种开源的大数据处理平台,读懂Hadoop的源代码,深入理解其各种机理,对于掌握大数据处理的技术有着显而易见的重要性。 本书从大数据处理的原理开始,讲到Hadoop的由来,进而讲述对于代码的研究方法,然后以Hadoop作为样本,较为详尽地逐一分析大数据处理平台各核心组成部分的代码,并从宏观上讲述这些部分的联系和作用。 本书沿用作者独特而广受欢迎的情景分析方法和风格,深入浅出直白易懂,可以作为大数据系统高级课程的教材,也可用作计算机软件专业和其他相关专业大学本科高年级学生和研究生深入学习大数据系统的参考书。同时,还可以作为各行业从事软件开发和数据挖掘的工程师、研究人员以及其他对大数据处理技术感兴趣者的自学教材。
资源目录:
第1章 大数据与Hadoop
1.1 什么是大数据
1.2 大数据的用途
1.3 并行计算
1.4 数据流
1.5 函数式程序设计与Lambda演算
1.6 MapReduce
1.7 大数据处理平台
1.8 Hadoop的由来和发展
1.9 Hadoop的MapReduce计算框架
1.10 Hadoop的分布式容错文件系统HDFS
第2章 研究方法
2.1 摘要卡片
2.2 情景分析
2.3 面向对象的程序设计
2.4 怎样阅读分析Hadoop的代码
第3章 Hadoop集群和YARN
3.1 Hadoop集群
3.2 Hadoop系统的结构
3.3 Hadoop的YARN框架
3.4 状态机
3.5 资源管理器ResourceManager
3.6 资源调度器ResourceScheduler
第4章 Hadoop的RPC机制
4.1 RPC与RMI
4.2 ProtoBuf
4.3 Java的Reflection机制
4.4 RM节点上的RPC服务
4.5 RPC客户端的创建
第5章 Hadoop作业的提交
5.1 从“地方”到“中央”
5.2 示例一:采用老API的ValueAggregatorJob
5.3 示例二:采用新API的WordCount
5.4 示例三:采用ToolRunner的QuasiMonteCarlo
5.5 从Job.submit()开始的第二段流程
5.6 YARNRunner和ResourceMgrDelegate
第6章 作业的调度与指派
6.1 作业的受理
6.2 NM节点的心跳和容器周转
6.3 容器的分配
第7章 NodeManager与任务投运
7.1 AMLauncher与任务投运
7.2 MRAppMaster或AM的创建
7.3 资源本地化
7.4 容器的投运
第8章 MRAppMaster与作业投运
8.1 MRAppMaster
8.2 App资源与容器
8.3 容器的跨节点投送和启动
8.4 目标节点上的容器投运
8.5 Uber模式下的本地容器分配与投运
8.6 任务的启动
8.7 MapTask的运行
8.8 ReduceTask的投运
第9章 YARN子系统的计算框架
9.1 MapReduce框架
9.2 Streaming框架
9.3 Chain框架
9.4 Client与ApplicationMaster
第10章 MapReduce框架中的数据流
10.1 数据流和工作流
10.2 Mapper的输入
10.3 Mapper的输出缓冲区MapOutputBuffer
10.4 作为Collector的MapOutputBuffer
10.5 环形缓冲区kvbuffer
10.6 对MapoutputBuffer的输出
10.7 Sort和Spill
10.8 Map计算的终结与Spill文件的合并
10.9 Reduce阶段
10.10 Merge
10.11 Reduce阶段的输入和输出
第11章 Hadoop的文件系统HDFS
11.1 文件的分布与容错
11.2 目录节点NameNode
11.3 FSNamesystem
11.4 文件系统目录FSDirectory
11.5 文件系统映像FsImage
11.6 文件系统更改记录FSEditLog
11.7 FSEditLog与Journal
11.8 EditLog记录的重演
11.9 版本升级与故障恢复
第12章 HDFS的DataNode
12.1 DataNode
12.2 数据块的存储
12.3 RamDisk复份的持久化存储
12.4 目录扫描线程DirectoryScanner
12.5 数据块扫描线程DataBlockScanner
第13章 DataNode与NameNode的互动
13.1 DataNode与NameNode的互动
13.2 心跳HeartBeat
13.3 BlockReport
第14章 DataNode间的互动
14.1 数据块的接收和存储
14.2 命令DNA_TRANSFER的执行
第15章 HDFS的文件访问
15.1 DistributedFileSystem和DFSClient
15.2 FsShell
15.3 HDFS的打开文件流程
15.4 HDFS的读文件流程
15.5 HDFS的创建文件流程
15.6 文件租约
15.7 HDFS的写文件流程
15.8 实例
第16章 Hadoop的容错机制
16.1 容错与高可用
16.2 HDFS的HA机制
16.3 NameNode的倒换
16.4 Zookeeper与自动倒换
16.5 YARN的HA机制
第17章 Hadoop的安全机制
17.1 大数据集群的安全问题
17.2 UGI、Token和ACL
17.3 UGI的来源和流转
17.4 Token的使用
第18章 Hadoop的人机界面
18.1 Hadoop的命令行界面
18.2 Hadoop的Web界面
18.3 Dependency Inject和Annotation
18.4 对网页的访问
第19章 Hadoop的部署和启动
19.1 Hadoop的运维脚本
19.2 Hadoop的部署与启动
19.3 Hadoop的日常使用
19.4 Hadoop平台的关闭
第20章 Spark的优化与改进
20.1 Spark与Hadoop
20.2 RDD与Stage——概念与思路
20.3 RDD的存储和引用
20.4 DStream
20.5 拓扑的灵活性和多样性
20.6 性能的提升
20.7 使用的方便性
20.8 几个重要的类及其作用
参考资料
截图: