Hadoop主要负责海量数据的存储与计算。
HDFS架构描述
在Hadoop3.x中,HDFS主要作为数据的存储介质,Mapreduce做计算,yarn做资源调度,common辅助工具。
- HDFS:分布式文件系统
- NameNode:负责决定数据的存储位置,记录数据存储情况。存储文件的元数据,如:文件名、文件目录结构、文件属性。以及每个文件的块列表和块所在的DataNode等。
- DataNode:负责具体存储数据,在本地文件系统存储块数据,以及块数据的校验和(保证数据的正确性)。
- SecondaryNameNode(2NN):辅助NameNode来进行工作,每隔一段时间对NameNode元数据进行备份。
yarn架构组成
yarn主要用来做资源的调度和管理,主要管理分配CPU和内存等。
yarn由 ResourceManager 和 NodeManager 组成。
-
ResourceManager: 整个资源的“老大”。管理整个集群的资源(CPU/内存)
-
NodeManager :管理单节点的资源。
多个 client 进行任务提交作业。
- ApplicationMaster(AM): 单个任务运行的“老大”。(客户端提交任务作业后会在节点上产生一个AM,而AM作用在一个 Container)中。
- Container:容器,相当于一台独立的服务器,里面封装了任务运行的各种资源,如:内存、CPU、磁盘、网络等。任务运行在Container中。
为什么任务放在一个容器里?
虚拟化技术:一个任务完成后,可以将之前所用到的资源进行释放,回归到该NodeManager中(用完即释放,减少资源浪费)。
NodeManager运行任务时,向 ResourceManager进行资源申请,接到申请后, ResourceManager对其进行资源分配,如发生资源不够的情况则可以跨节点再分配资源,进行任务的执行。
Tips:
- 客户端(client)可以有多个。
- 集群上可以运行多个 ApplicationMaster
- 每个NodeManager可以有多个Container
MapReduce架构描述
MapReduce将计算分为两个阶段,分别为 Map 阶段和 Reduce 阶段。
Map阶段主要是将待处理的数据同时并行的声明给各个Hadoop节点进行处理。
Reduce阶段则是将各节点处理后的结果进行汇总,得出最后的计算结果。
HDFS、MapReduce、Yarn三者之间的关系
如下任务需求:从100T文件中找出目标视频数据
重生之我学大数据第一天完成。后续内容可以持续关注,争取日更!!!