Hadoop三大组件(HDFS,MapReduce,Yarn)
1、HDFS
HDFS是Hadoop分布式文件系统。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。
2、MapReduce
MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。
MapReduce的思想就是“分而治之”。
(1)Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:
一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。
(2)Reducer负责对map阶段的结果进行汇总。至于需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。
3、Yarn
yarn:负责资源调度。包括两个模块:resourcemanager和nodemanager
resourcemanager:整个资源调度的老大
(1)接收客户端的请求 该请求是运行程序的请求
(2)启动和监控MRAppMaster
(3)接收nodemanager的状态报告 nodemanager的资源状态和存活状态
(4)资源调度,整个计算程序的资源调度:决定运行资源和跑在哪个节点
nodemanager:负责真正的提供资源,运行计算程序
(1)接收resourcemanager的命令
(2)管理单个结点上的资源
(3)提供资源运行计算程序
(4)处理来自MRAppMaster的命令