摘要
这本书并不是为所有想要对大数据有所了解的人而写的。但是,如果你有点野心,想对大数据处理系统有比较深入、透彻的了解,特别是想有朝一日自己也设计一个这样的系统,甚至自己把它写出来,那么你真应该认真读一下这本书,看看人家Hadoop是怎么设计怎么实现的。 然后,在最后一章,你可以再看看Spark又是什么样的,有些什么改进。你将看到,在一个计算机集群上构筑一个大数据处理系统,哪些成分是必不可少的,哪些方面又是可以改进的,它与操作系统的关系怎样,而作为大规模计算机集群的“操作系统”又可以并应该是什么样的。
大数据处理系统 Hadoop源代码情景分析 内容简介
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和A CL
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几个重要的类及其作用
参考资料
大数据处理系统 Hadoop源代码情景分析 精彩文摘
所谓“大数据(big data)”,首先当然是数据。“大”是形容词,是对于“数据”这个词的限定和修饰。而我们所讲的“数据(data)”,则是指对于信息的数字化记录。
客观世界无时不在产生信息,每一种物理的、化学的、生物的、思想的、行为的现象和过程都带有大量的信息。如果不加记录,这些信息就都流逝了。其中也有极少数的信息会被大自然以某种方式保存下来,例如化石,但是从数量比例上看那是可以忽略不计的。也有些信息会被人们所记忆并在一段时间内口耳相传,可是如果不加以进一步记录,也就慢慢湮没了。
文字的发明之所以重要,就是因为它提供了一种记录信息的手段。当然,单纯的记录并不解决问题,记录下来的信息还应可以回放、可以复制转录、可以长期保存.还要可以检索、可以比对。文字在一定程度上满足了这些要求:人们通过阅渎在头脑巾“回放”和恢复被记录成文字的信息;通过抄写和印刷加以复制;通过纸张、竹简、羊皮、石壁等物理介质解决长期保存的问题;通过顺序扫描、分册、分段、加签、索引等手段和方法解决检索的问题。
本文来自至尊狂魔┈投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。