文章目录
Hadoop三剑客
1、HDFS:Hadoop的文件操作系统
HDFS主要是基于谷歌GFS演变过来的,主要实现数据的存储和管理
1.NameNode
NameNode主要存储文件的元数据 、每个文件的块列表和 块所在的DataNode
-
元数据: 元数据是描述数据的数据,包括有:文件名、文件目录结构、文件属性(生产时间、副本数和文件权限)
-
块列表: FileSystem的文件系统,通过这个文件系统可以查找到文件所在目录
-
块所在的DataNode: 查找文件所在分片数
2.DataNode
DataNode主要存储数据和块数据的校验和
-
数据: 数据是本数据节点的最主要功能
-
块数据的校验和: 通过数据校验对数据进行校验,进而提高文件的容错性
3.Secondary NameNode
在一定的时间间隔对NameNode的元数据进行备份,当NameNode挂了本节点可以直接热启动,继续保证集群运转
2、MapReduce:Hadoop支持的计算框架
Hadoop集群通过分布式存储方式,对一个数据进行分片后进行存储。当这些数据需要进行运算处理,如果将分布式数据进行合并计算,其集群的使用效率很低,且对内部局域网络的负荷也很大。为了提高集群的运算能力,将存储节点和运算节点合并,进而让每个存储节点都拥有一定的运算能力。
1.Map
Map阶段并行处理输入数据,节点内部将存储在该节点的数据进行运算,之后通过网络对处理后的进行传输。
2.Reduce
Reduce阶段对Map结果进行汇总,Map处理的数据到Reduce合并的过程中采取归并排序,因为经过Map处理的数据已经有序,采取归并排序其时空复杂度最低。
3、Yarn:资源调度框架
Apache Hadoop YARN 是开源 Hadoop 分布式处理框架中的资源管理和作业调度技术。作为 Apache Hadoop 的核心组件之一,YARN 负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务。
1.ResourceManager(RM)
(1)处理客户端请求
(2)监控NodeManager
(3)启动或者监控ApplicationMaster
(4)资源的分配与调度
2.NodeManager(NM)
(1)管理单个节点上的资源
(2)处理来自ResourceManager的命令
(3)处理来自ApplicationMaster的命令
3.ApplicationMaster(AM)
(1)负责数据的切分
(2)为应用程序申请资源并分配给内部的任务
(3)任务的监控与容错
4.Container
Container是Yarn中的资源抽象,它封装了某个节点上的多维度资源,包括:内存、CPU、磁盘、网络等。