zoukankan      html  css  js  c++  java
  • 一、hadoop基本介绍

    1.Hadoop的整体框架

    • Hadoop是由许多元素构成的,最核心的是HDFS(分布式文件系统),它存储了Hadoop集群中所有DataNode文件,HDFS的上一层是MapReduce引擎,MapReduce是一种计算模型,用以进行大数据量的计算。

    HDFS

    • HDFS是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。
    • 它采用了主从结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成,其中NameNode作为主服务器管理文件系统的命名空间和客户端对文件的访问操作,而DataNode则负责管理存储的数据。HDFS底层数据被切割成了多个Block,而这些Block又被复制后存储在不同的DataNode上,以达到容错容灾的目的。
    • HDFS由四部分组成,HDFS Client、NameNode、DtatNode和Secondary NameNode。
      HDFS是一个主/从(Mater/Slave)体系结构,HDFS集群拥有一个NameNode和一些DataNode。NameNode管理文件系统的元数据,DataNode存储实际的数据。

    MapReduce

    • MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。采用的是分而治之的思想,首先把任务分发到集群的多个节点上,并行计算,然后再把计算结果合并,从而实现大规模数据的并行运算。而实现多点计算,所涉及的任务调度、负载均衡、容错处理等都是有MapReduce框架完成。

    MapReduce 由 两 个 阶 段 组 成 :Map 和 Reduce

    • map() 函数以 key/value 对作为输入,产生另外一系列 key/value 对作为中间输出写入本地 磁盘。
    • MapReduce 框架会自动将这些中间数据按照 key 值进行聚集,且 key 值相同(用户可 设定聚集策略,默认情况下是对 key 值进行哈希取模)的数据被统一交给 reduce() 函数处理。
    • reduce() 函数以 key 及对应的 value 列表作为输入,经合并 key 相同的 value 值后,产 生另外一系列 key/value 对作为最终输出写入 HDFS。
    • 指定三个组件分别是 InputFormat、Partitioner 和 OutputFormat, 它们均需要用户根据自己的应用需求配置
    • 指定输入 文件格式。将输入数据切分成若干个 split,且将每个 split 中的数据解析成一个个 map() 函数 要求的 key/value 对。
    • 确定 map() 函数产生的每个 key/value 对发给哪个 Reduce Task 函数处 理。
    • 指定输出文件格式,即每个 key/value 对以何种形式保存到输出文件中。
  • 相关阅读:
    备忘录模式
    观察者模式
    状态模式
    模板方法模式
    策略模式
    装饰者模式
    访问者模式
    工作那些事(二十七)项目经理在项目中是什么角色?
    工作那些事(二十六)个人和团队
    工作那些事(二十五)项目经理与产品经理
  • 原文地址:https://www.cnblogs.com/hziwei/p/12785555.html
Copyright © 2011-2022 走看看