大数据(六) –Hadoop简介

By | 2019年1月10日

版权声明:本文版权归宋坤所有,转载请注明出处 https://blog.csdn.net/skisqibao/article/details/83064376

What is Hadoop?

Hadoop思想来源

  Google是Hadoop思想和技术的来源. 具体来说就是Hadoop的” 三驾马车” –Google 发布的三篇技术思想论文:

  • The Google File System
  • MapReduce_Simplified Data Processing on Large Clusters
  • Bigtable_A Distributed Storage System for Structured Data

Hadoop的历史

  Hadoop作者Doug Cutting , 他在Yahoo就职期间开发了Hadoop项目. 2003-2004年, Google公开GFS和MapReduce思想细节后, Doug Cutting等人以此为基础利用业余时间实现DFS和MapReduce机制. Hadoop名字的来源是Doug儿子的大象玩具.

  2005年Hadoop作为Lucene的子项目Nutch的一部分被正式引入Apache基金会. 06年MapReduce和Nutch Distributed File System(NDFS)被纳入Hadoop项目.

  至此, Hadoop作为一个分布式系统基础架构由Apache基金会所开发并以开源的形式提供给开发者. 主要用来解决海量数据的存储计算处理.

  广义上来讲, Hadoop一般指Hadoop生态圈, 圈中有如下图众多的技术:
在这里插入图片描述

三大发行版本

  1. Apache Hadoop: 原始版本, 适合初学者
  2. Cloudera Hadoop: 适合大型互联网企业中的项目, 收费
  3. Hortonworks Hadoop: 文档相对好点

Hadoop的优势

  1. 高可靠性
    底层维护多个数据副本, 即使某个节点故障, 数据也不会丢失.
  2. 高扩展性
    在集群间分配数据, 可以很轻松地扩展节点.
  3. 高效性
    在MR思想下, 实现并行处理, 加快处理速度, 提高效率.
  4. 高容错性
    能够自动将失败的任务重新分配.

Hadoop的组成

Hadoop1.*和2.*的区别

Hadoop1.*的组成
在这里插入图片描述

Hadoop2.*的组成
在这里插入图片描述

  从这两幅图中可以看出, 1.*的版本中, MapReduce除了负责计算之外, 还要对系统资源进行调度, 包括CPU, 内存, 磁盘等. 因此, MapReduce负责的功能太多太复杂, 容易出现问题, 耦合性较大.

  于是2.*版本中, 将资源调度模块从MapReduce中抽离, 让它成为单独的一个模块, 实现该模块功能的工具就是Yarn. Yarn的出现, 成功让MapReduce功能解耦, 更加模块化

Hadoop组成

HDFS

  • NameNode
    • 接受客户端读写请求
    • 管理元数据
    • 管理DataNode
  • DataNode
    • 接受客户端读请求
    • 存储源数据
    • 向NameNode汇报心跳
    • 构建PipeLine
    • 管理本机上Block块的元数据
  • SecondaryNameNode
    • 持久化元数据

Yarn

  • ResourceManager
    • 处理客户端请求
    • 监控NodeManager
    • 启动并监控ApplicationMaster
    • 资源调度与分配
  • NodeManager
    • 管理单节点上的资源
    • 处理来自RM的命令
    • 处理来自ApplicationMaster的命令
  • ApplicationMaster
    • 辅助数据切分
    • 申请程序资源并分配给内部任务
    • 任务监控与容错
  • Container
    • Yarn中的资源抽象, 它封装了某个节点上多维度资源, 例如: 内存, CPU, 磁盘, 网络等.

MapReduce

  MapReduce将计算分两个阶段, Map和Reduce.

  1. Map阶段并行处理输入数据;
  2. Reduce阶段对Map结果进行汇总
    在这里插入图片描述

大数据技术生态体系

在这里插入图片描述

发表评论