美文网首页我爱编程
꧁ Hadoop 实战训练(一)꧂

꧁ Hadoop 实战训练(一)꧂

作者: 心甘情愿_Root | 来源:发表于2017-08-01 15:33 被阅读0次

    Hadoop 简介

    Hadoop是Apache旗下的一款开源分布式计算平台,它通过以分布式文件系统HDFS和MapReduce为核心,为用户提供了系统底层细节透明的分布式基础架构。

    Hadoop 结构

    • HDFS:它是一个分布式文件系统,以高容错性为设计原则,所以可以设计部署在低廉的硬件上。
    HDFS设计目标:
    1.检测和快速恢复硬件故障。
    2.流式的数据访问。
    3.简化一致性模型。
    4.通信协议。
    
    • MapReduce:它是一种编程模型,用于大规模数据集的并行运算。

    • Core/Common:为其他子项目提供支持,主要包括FileSystem、RPC和串行化库。

    • Avro:用于数据序列化系统。

    Avro的支持:
    1.提供丰富的数据结构类型。
    2.快速可压缩的二进制数据格式。
    3.存储持久性数据的文件集。
    4.远程调用RPC的功能和简单的动态语言集成功能。
    
    • Chukwa:是开源的数据收集系统,用于监控和分析大型分布式系统的数据。

    • Hive:建立在Hadoop基础上的数据仓库,提供了一些用于数据整理、特殊查询和分析存储在Hadoop文件中的数据集的工具。

    • HBase:是一个分布式的、面向列的开源数据库。

    • Pig:是一个对大型数据集进行分析和评估的平台。

    Hadoop核心之HDFS

    HDFS采用了主从结构模型(Master/Slave),一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据,由NameNode统一调度。

    • 文件写入
    1.Client向NameNode发起文件写入请求。
    2.NameNode根据文件大小和文件块的配置情况,返回给Client它所管理的DataNode的信息。
    3.Client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入每一个DataNode中。
    
    • 文件读取
    1.Client向NameNode发起读取文件的请求。
    2.NameNode返回文件存储的DataNode信息。
    3.Client读取文件信息。
    
    • 文件块复制
    1.NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效。
    2.通知DataNode相互复制Block。
    3.DataNode开始直接相互复制Block。
    

    Hadoop核心之MapReduce

    MapReduce是一种并行编程模式,由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控他们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

    MapReduce数据流图.jepg

    基本原理

    1. 数据分布存储 (HDFS)
    2. 分布式并行计算 (JobTracker & TaskTracker)
    3. 本地计算 
    4. 任务粒度 (默认 block 64MB)
    5. 数据分割 (Partition)
    6. 数据合并 (Combine)
    7. Reduce 
    8. 任务管道 
    

    相关文章

      网友评论

        本文标题:꧁ Hadoop 实战训练(一)꧂

        本文链接:https://www.haomeiwen.com/subject/nxyjlxtx.html