前言
说到分布式软件,就一定绕不过Hadoop
。
Hadoop
是 Google 著名的 MapReduce
和 GFS
论文的开源实现,它为我们提供了一个分布式的数据存储和计算框架,能够让我们在低成本的PC设备上搭建一个大规模的分布式数据存储系统。
由于Hadoop
的出现直接降低了大数据的存储和计算成本,可以说Hadoop
以及他的整个生态环境拉开了大数据时代的大幕。
Hadoop
主要由 Hdfs
, MapReduce
和 Yarn
三个大模块组成,我会基于 Hadoop 3.0.0 alpha2
的源码,分别解析一下这三个模块的代码逻辑。
具体章节划分如下,先从Hdfs
开始,每周更新一两篇源码走读笔记。
Hdfs
Hdfs(Hadoop Distributed File System)是Hadoop框架中的分布式存储系统,
主要关注点:
- Hdfs内部通信机制
- Hdfs的DFS实现机制
- Hdfs的数据冗余备份
- Hdfs的secondarynamenode和HA解析
主要章节划分有:
MapReduce
Hadoop中的MapReduce框架负责在分布式系统中进行数据计算,通过将jar文件传输到各个数据节点进行分布式计算的形式,减少不必要的数据传输。
主要关注点:
- 提交MapReduce任务的解析过程
- Map、Shuffle、Reduce三个步骤之间的临时数据存储逻辑
- Shuffle步骤触发策略
时间待定,章节待定
Yarn
Yarn(Yet Another Resource Manager)是Hadoop框架中的资源管理者。
主要关注点:
- Yarn 对计算节点的抽象逻辑
- Yarn 的任务调度策略
- Yarn 对Map Reduce任务的切割分发
主要章节划分有: