zoukankan      html  css  js  c++  java
  • 大数据基础原理

    http://yuedu.baidu.com/ebook/d128cf8e33687e21ae45a935?pn=1&click_type=10010002

    2.3 Hadoop原理
    2.3.1 Hadoop HDFS原理
    HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。

    HDFS采用master/slave架构。

    一个HDFS集群是由一个NameNode和一定数目的DataNodes组成。

    NameNode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。

    DataNode一般是一个节点一个,负责管理它所在节点上的存储。

    HDFS数据上传原理可以参考图2-5对照理解,数据上传过程如下所示:
    1)Client端发送一个添加文件到HDFS的请求给NameNode;
    2)NameNode告诉Client端如何来分发数据块以及分发的位置;
    3)Client端把数据分为块(block),然后把这些块分发到DataNode中;
    4)DataNode在NameNode的指导下复制这些块,保持冗余。

    2.3.2 Hadoop MapReduce原理
    适合用MapReduce来处理的数据集(或任务),需要满足:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

    Hadoop MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

    一个MapReduce作业(job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序,然后把结果输入给reduce任务。通常,作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。
    MapReduce框架包括

      一个主节点(ResourceManager)、

      多个子节点(运行NodeManager)

      MRAppMaster(每个任务一个)

    共同组成。

    Hadoop的job client提交作业(jar包/可执行程序等)和配置信息给ResourceManager,后者负责分发这些软件和配置信息给slave、调度任务且监控它们的执行,同时提供状态和诊断信息给job-client。

    MapReduce框架的流程如图2-6所示。
    针对上面的流程可以分为两个阶段来描述。
    (1)Map阶段
    1)InputFormat根据输入文件产生键值对,并传送到Mapper类的map函数中;
    2)map输出键值对到一个没有排序的缓冲内存中;
    3)当缓冲内存达到给定值或者map任务完成,在缓冲内存中的键值对就会被排序,然后输出到磁盘中的溢出文件;
    4)如果有多个溢出文件,那么就会整合这些文件到一个文件中,且是排序的;
    5)这些排序过的、在溢出文件中的键值对会等待Reducer的获取。

    (2)Reduce阶段

    1)Reducer获取Mapper的记录,然后产生另外的键值对,最后输出到HDFS中;
    2)shuffle:相同的key被传送到同一个的Reducer中;
    3)当有一个Mapper完成后,Reducer就开始获取相关数据,所有的溢出文件会被排序到一个内存缓冲区中;
    4)当内存缓冲区满了后,就会产生溢出文件到本地磁盘;
    5)当Reducer所有相关的数据都传输完成后,所有溢出文件就会被整合和排序;
    6)Reducer中的reduce方法针对每个key调用一次;
    7)Reducer的输出到HDFS。
    

      

    2.3.3 Hadoop YARN原理
    MapReduce的最严重的限制主要关系到可伸缩性、资源利用和对与MapReduce不同的工作负载的支持。


    全新的Hadoop架构——YARN(也称为MRv2)。下一代Hadoop计算平台,主要包括ResourceManager、ApplicationMaster、NodeManager

    ResourceManager用来代替集群管理器,
    ApplicationMaster代替一个专用且短暂的JobTracker,
    NodeManager代替TaskTracker。
  • 相关阅读:
    LeetCode 769. Max Chunks To Make Sorted
    LeetCode 845. Longest Mountain in Array
    LeetCode 1059. All Paths from Source Lead to Destination
    1129. Shortest Path with Alternating Colors
    LeetCode 785. Is Graph Bipartite?
    LeetCode 802. Find Eventual Safe States
    LeetCode 1043. Partition Array for Maximum Sum
    LeetCode 841. Keys and Rooms
    LeetCode 1061. Lexicographically Smallest Equivalent String
    LeetCode 1102. Path With Maximum Minimum Value
  • 原文地址:https://www.cnblogs.com/linuxws/p/10798820.html
Copyright © 2011-2022 走看看