大数据:无法在一定时间用常规工具处理的海量信息资产

企业大数据多来源于日志、数据库、爬虫等

Hadoop体系架构:HDFS(Hadoop Distributed File System)、YARN、MapReduce、Common

        Hadoop Common:
            为其他Hadoop模块提供基础设施
        Hadoop HDFS:
            一个高可靠、高吞吐量的分布式文件系统
        Hadoop MapReduce:
            一个分布式的离线并行计算框架
        Hadoop YARN:
            一个新的MapReduce框架,任务调度与资源管理

HDFS
        NameNode:    用于保存元数据信息(Namenode将元数据保存在内存中)
            处理客户端的请求
            元数据(Filename、副本数,各个副本所在的节点的位置)
 
        DataNode:    用于具体保存数据的(副本数默认为3,可设置)
 
        SecondaryNameNode: 用于同步元数据信息
 
        Client:        发起请求

hadoop平台的两大核心 hadoop的两大核心项目_HDFS

HDFS读取流程:

        client向namenode发起读请求

        namenode查元数据,获取文件块列表并返回

        client就近选取datanode服务器,读取数据。

HDFS写入请求:

        client向namenode发出写请求

        请求成功后,写入一条记录,返回datanode列表

        client默认按128MB切分文件,将block就近写入datanode

        该datanode再将block写给存该block副本的datanode,同时以packet的形式,建立管线写入datanode

        写入完成,client向namenode发送完成信号

hadoop平台的两大核心 hadoop的两大核心项目_Hadoop_02

向YARN提交任务流程简述:

         client向resourcemanager发出请求,提交程序

         resourcemanager发送命令给一个nodemanager节点,以启动app master

        app master启动后向resourcemanager申请资源

        app master向资源所在的nodemanager发送命令,启动task任务,app master监控这些任务的完成情况

        当这些task执行结束,向app master进行反馈

        所有任务结束之后,app master向resourcemanager反馈,回收本次任务的资源

hadoop平台的两大核心 hadoop的两大核心项目_Hadoop_03

HDFS启动流程及元数据同步

        namenode启动,加载元数据,并等待datanode注册,同时进入就安全模式;datanode注册后向namenode发送心跳和block报告。

        加载元数据:加载fsimage和edits文件,合并生成新的fsimage,并生成edits文件

shuffle主要操作

        进入环形缓冲区,经过以下操作spill to disk(溢写到磁盘)

        partitioner(map)分区-getParitition

        sorter(map&reduce)依据key排序

        combiner(map)局部聚合

        spill to disk 将分区排序后的数据写到本地磁盘临时小文件

        compress(可选)输出数据压缩

        group(reduce)分组

hadoop平台的两大核心 hadoop的两大核心项目_hadoop平台的两大核心_04

MapReduce计算框架

        ◆  将计算过程分为两个阶段:Map和Reduce
              Map阶段并行处理输入数据
             Reduce阶段对Map结果进行汇总

        ◆  Shuffle链接Map和Reduce两个阶段
              Map Task将数据写到本地磁盘
              Reduce Task从每个Map Task上读取一份数据

        ◆  仅适合离线批处理
              具有很好的容错性和扩展性
              适合简单的批处理任务

        ◆  缺点明显
             启动开销大,过多使用磁盘导致效率低下等

 MapReduce是Hadoop提供的一种处理海量数据的并行编程模型和计算框架,用于对大规模的数据进行并行计算。主要由ResourceManager和NodeManager两类节点构成。 其中ResourceManager主要负责集群资源管理,NodeManager负责节点的资源管理。除此之外,当运行mapreduce任务的时候,会产生ApplicationMaster和Container,其中ApplicationMaster负责向ResourceManager节点进行资源的申请并控制任务的执行,Container是最基本的资源单位。mapreduce的map和reduce均是其之上进行运行的。

zookeeper:一个开源分布式的,为分布式应用提供协调服务的框架

resoucemanager HA搭建

 

cent01

cent02

cent03

HDFS

NameNode

NameNode

 

 

DataNode

DataNode

DataNode

 

ZKFC

ZKFC

 

 

JournalNode

JournalNode

JournalNode

Zookeeper

QuorumPeerMain

QuorumPeerMain

QuorumPeerMain

Yarn

 

ResourceManager

ResourceManager

 

NodeManager

NodeManager

NodeManager

 

hadoop平台的两大核心 hadoop的两大核心项目_HADOOP面试核心问题总结_05

hadoop平台的两大核心 hadoop的两大核心项目_hadoop平台的两大核心_06

 

hadoop平台的两大核心 hadoop的两大核心项目_hadoop平台的两大核心_07

  1. 网站的基本指标
  • pv
  • uv
  • ip
  • vv

 

       

hadoop平台的两大核心 hadoop的两大核心项目_元数据_08