Hadoop简介

Hadoop 是一个适合大数据分布式存储计算平台。

狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架

Hadoop生态圈技术栈
Hadoop(HDFS + MapReduce + Yarn)
Hive 数据仓库工具
HBase 海量列式非关系型数据库
Flume 数据采集工具
Sqoop ETL工具
Kafka 高吞吐消息中间件

Hadoop的特点

在这里插入图片描述

Apache Hadoop版本更迭

  • 0.x 系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本
  • 1.x 版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等
  • 2.x 版本系列:架构产生重大变化,引入了yarn平台等许多新特性
  • 3.x 版本系列:EC技术、YARN的时间轴服务等新特性

在这里插入图片描述

Hadoop的优缺点

Hadoop的优点

  • Hadoop具有存储和处理数据能力的高可靠性。
  • Hadoop通过可用的计算机集群分配数据,完成存储计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性。
  • Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。
  • Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。

Hadoop的缺点

  • Hadoop不适用于低延迟数据访问。
  • Hadoop不能高效存储大量小文件。
  • Hadoop不支持多用户写入并任意修改文件。

Apache Hadoop的重要组成

Hadoop = HDFS(分布式文件系统) + MapReduce(分布式计算框架) + Yarn(资源协调框架) + Common模块

  1. Hadoop HDFS:(Hadoop Distribute File System )一个高可靠、高吞吐量的分布式文件系统,比如:100T数据存储,“分而治之”

    分:拆分–》数据切割,100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块。

    数据切割、制作副本、分散储存

在这里插入图片描述

​ 类似于分布式的感念

NameNode(nn)存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。

DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验

​ 注意:NN,2NN,DN这些既是角色名称,进程名称,代指电脑节点名称!!

  1. Hadoop MapReduce:一个分布式的离线并行计算框架

    拆解任务、分散处理、汇整结果

    MapReduce计算 = Map阶段 + Reduce阶段

    Map阶段就是“分”的阶段,并行处理输入数据;

    Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总;

    在这里插入图片描述

  2. Hadoop YARN:作业调度与集群资源管理的框架

    计算资源协调

    在这里插入图片描述

    Yarn中有如下几个主要角色,同样,既是角色名、也是进程名,也指代所在计算机节点名称。

    ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;

    NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;

    ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。

    Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

    ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。

    在这里插入图片描述

  3. Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

  4. Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐