Hadoop概述

通过存储海量数据、快速处理海量数据、从海量数据中进行分析,以产生价值

  • Hadoop 2.x核心组件
  1. Hadoop Common:为其它Hadoop模块提供基础设施。
  2. Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统,主要负责数据的存储。
  3. Hadoop MapReduce:分布式、离线、并行计算框架,一般用于对HDFS上的数据处理。
  4. Hadoop YARN: 集群任务调度与资源管理,主要负责对于任务资源的调度分配。

  • HDFS
        HDFS即Hadoop Distributed File System分布式文件系统

Hadoop概述

  1. NameNode: 一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。 主要负责文件元数据的管理。
  2. DataNode: 主要负责具体数据块的存储,会周期性的给NameNode汇报当前DataNode上的所有块信息。 
  3. SecondaryNameNode:主要作为NameNode元数据存储的备份节点;但是在Hadoop2.x版本中,支持多 NameNode后,SecondaryNameNode可以不考虑啦!。
  4. 在HDFS中,文件是以块的形式存储在不同的DataNode机器上的,默认块大小 为128M(可修改)。
  5. 在HDFS中,文件存储默认是采用备份机制的,也就是说对于同一个文件块,会 将其保存在多个不同的DataNode机器上,以达到数据高可用性。默认的数据备 份因子为3(可修改)。

  • MapReduce

        MapReduce是一种“分而治之”的计算思想,将任务分为map和reduce两个阶段, map阶段主要是“分”的操作:将任务分成多个小任务执行,reduce阶段主要是“合” 的操作:将map阶段的输出进行合并,并将合并之后的最终结果输出到磁盘文件中。
        MapReduce主要由5个阶段组成,其中编程人员主要负责map和reduce阶段,其它阶 段由MapReduce框架实现。

  1. Input:数据输入以及数据分片,定义如何从HDFS等存储系统中输入数据 
  2. Map:对每个数据片进行数据处理,并将处理后的数据按照业务代码规则输出 
  3. Shuffle:对Map的输出数据进行排序、分组等操作,供Reduce获取 
  4. Reduce:获取Map的输出数据,将获取的数据合并聚合,并将聚合结果输出 
  5. Output:定义如何将Reduce的输出值输出到HDFS等存储系统中
Hadoop概述

  • Yarn
  1. ResourceManager

    处理客户端请求,启动/监控ApplicationMaster,监控NodeManager,集群资源分配与调度

    2. ApplicationMaster

    为应用程序申请资源,并分配给内部任务,任务监控与容错,每个运行在Spark上的应用都有一个该进程运行
     3. NodeManager
    单个节点上的资源管理,处理来自ResourceManager的命令,处理来自ApplicationMaster的命令
    4. Container
    对任务运行环境的抽象,封装了CPU、 内存等多维资源以及环境变量、启动命令等任务运行相关的信息

Hadoop概述