1. HDFS
NameNode用于记录整个数据的存储情况,具体的数据存储在各个Hadoop节点中,每个Hadoop的节点可以称为DataNode。假设Hadoop1到Hadoop100的机器每个都有1T的容量。那么一共就可以存储100T的数据。
- NameNode(nn):存储文件的元数据,比如文件名、文件目录结构,文件属性等,还有每个文件的块列表与块所在的DataNode。
- DataNode(dn):存储文件快数据,以及块数据的校验和。
- Secondary NameNode(2nn):每隔一段时间对NameNode元数据进行备份。
2. YARN
Yarn 是Hadoop的资源管理器,主要管理的是CPU与内存。主要有两个模块。
- Resource Manager
管理着所有Hadoop节点的资源。 - Node Manager
只负责管理某一个节点的资源。
3. MapReduce
MapReduce是一种编程模型。这个模型的核心步骤主要分两部分:Map(映射)和Reduce(归约)。 比如:从100T的文件当中,找到名称为“cat.mp4” 的视频。
4. HDFS、Yarn、MapReduce三者关系
- 当一个任务进行提交之后,由 Resource Manager(Yarn) 进行分配到 Node Manager 并创建一个包含 Application Master 的 Container
- Application Master 会向 Resource Manager 申请资源,用于运行提交的任务。Application Master 申请到资源会在有资源的节点中创建包含 MapTask 的 Container (此时进入到 MapReduce 的Map阶段)。
- Map阶段结束之后,会在一个 DataNode 中开启一个包含 Reduce Task 的 Container,进行结果的汇总。然后存入磁盘当中。
Yarn 用于分配资源,MapReduce用于对任务进行计算。前两者操作的数据都在 HDFS 当中存储
5. 大数据生态体系
参考:
尚硅谷Hadoop教程 : https://www.bilibili.com/video/BV1Qp4y1n7EN
知乎:https://zhuanlan.zhihu.com/p/54994736