1 hadoop的意义

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的未来进行高速运算和存储。

Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里
对于Hadoop分布式文件系统(HDFS)来说,大数据处理通过三份以上存储来支持数据的高可用性。

2 Hadoop优点

  1. 高可靠性:Hadoop按位存储和处理数据的能力值得信赖
  2. 高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中
  3. 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快
  4. 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配
  5. 低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,Hadoop是开源的,项目的软件成本因此会大大降低

3 Hadoop生态圈

4 Hadoop的整体架构


HDFS和MapReduce是Hadoop的两大核心,除此之外,Hbase、Hive这两个核心工具也随着Hadoop发展变得越来越重要。同时,在Hadoop2.0之后,在HDFS的基础上增加了YARN,是一个资源管理框架,在YARN上既可以放MapReduce,也可以防止其它的计算资源,主要是管理资源的,如CPU,硬盘,内存,网络等

5 Hadoop的组件介绍

5.1 HDFS

HDFS(hadoop Distributed File System)是分布式文件管理系统中的一种,用来管理多台机器上的文件,通过目录树来定位文件

HDF为主(Master)/从(Slave)架构:一个NameNode,多个DataNode

HDFS核心架构

HDFS的几个核心概念

  1. NameNode:管理文件系统命名空间(打开、关闭、重命名文件和目录,还确定了文件块在哪个DataNode上的路径),管理客户端对文件的访问,配置副本策略(复制因子,可为某个文件单独设置),记录对文件系统命名空间或其属性的任何更改。
  2. DataNode:存储文件块(负责提供来自文件系统客户端的读写请求,还根据NameNode的指令执行块创建、删除和复制),上传至HDFS的文件在内部被分成一个或多个块,这些块存储在一组DataNode中。
  3. Block:块,文件存储处理的逻辑单元,默认是64M。

数据写入过程

  1. Client向NameNode发起文件写入的请求
  2. NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息
  3. Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中

数据读取过程

  1. Client向NameNode发起文件读取的请求
  2. NameNode返回文件存储的DataNode的信息
  3. Client读取文件信息

5.2 MapReduce

先举个比较形象的例子


MapReduce是一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成
HDFS和MapReduce共同组成Hadoop分布式系统体系结构的核心
HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理

MapReduce V1架构

几个核心概念

  1. JobTracker:是主线程,它负责接收客户作业提交,调度任务到工作节点上运行,并提供诸如监控工作节点状态以及任务进度等管理功能。
  2. TaskTracker:后台程序,由jobtracker指派任务,实例化用户程序,在本地执行任务并周期性地向jobtracker汇报状态
  3. ResourceManager:处理客户端请求,启动或监控ApplicationMaster,监控NodeManager,资源的分配与调度
  4. NodeManager:管理单个节点上的资源,处理来自ResoucceManager的命令,处理来自ApplicationMaster的命令。
  5. ApplicationMaster:管理在YARN内运行的每个应用程序实例,负责协调来自ResourceManager的资源,并通过NodeManager的监视容器的执行和资源使用(CPU、内存等的资源分配)
  6. Container:是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

MapReduce V2/Yarn架构


MapReduce V2/Yarn 作业执行流程

  1. 用户作业提交
  2. ResourceManager 收到作业请求,将该请求发给scheduler,调度器分配第一个container,然后资源管理器在该container内启动Application manager
  3. Application manager找一台nodeManager启动Application Master,计算任务所需的计算
  4. Application master向Application manager的scheduler申请运行任务所需的资源
  5. scheduler将资源封装发给Application master;
  6. Application master将获取到的资源分配给各个nodeManager,并创建容器
  7. 各个nodeManager得到任务和资源开始在容器执行map task和reduce task,map task和reduce task将执行结果反馈给Application master
  8. Application master将任务执行的结果反馈给application manager,applicationMaster向ResourceManager注销并关闭自己,application manager反馈结果给用户。

5.3 Yarn

Yarn是一个分布式资源管理系统,负责集群机器资源的隔离、分配和管理

Yarn在真个hadoop生态处理中心枢纽的位置,各种分布式计算框架(MR、spark、tez、Flink)可以运行在Yarn上,让各种计算框架无需各自实现资源分配机制,更加纯粹专注做分布式计算相关工作

Hadoop概念以及架构介绍相关推荐

  1. Hadoop的概念及架构介绍

    Hadoop的概念及架构介绍 Hadoop是大数据开发所使用的一个核心框架.使用Hadoop可以方便的管理分布式集群,将海量数据分布式的存储在集群中(hdfs),并使用分布式程序来处理这些数据.(Ma ...

  2. Druid基本概念及架构介绍

    Druid基本概念及架构介绍 学习参考:https://www.apache-druid.cn/ Apache Druid是一个高性能的实时分析型数据库 作者:it_zzy 链接:https://ww ...

  3. Hadoop的存储架构介绍

    http://lxw1234.com/archives/2016/04/638.htm 该文章介绍了Hadoop的架构原理,简单易懂. 目前公司提供Hadoop的运算集群BMR,可以直接申请集群资源. ...

  4. hadoop概念及框架介绍

    一.Hadoop简介 1.Hadoop简介 1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运 ...

  5. hadoop系列(一)概念、组件介绍、安装环境、配置

    hadoop系列(一)概念.组件介绍.安装环境.配置 一.大数据概念 概念 大数据:解决海量数据的采集.存储.分析计算的能力 大数据特点 Volume(大量) Velocity(高速) Variety ...

  6. 【云原生系列】云计算概念与架构设计介绍

    1 什么是云计算 云计算是一种基于互联网的计算模式,在这个模式下,各种计算资源(例如计算机.存储设备.网络设备.应用程序等)可以通过互联网实现共享和交付.云计算架构设计的主要目标是实现高效.可扩展.可 ...

  7. 46.逻辑卷管理1,lvm架构,概念,常用命令介绍

    LVM架构 LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的.lvm需要使用的软件包为lvm2.它的架构 相关概念 ...

  8. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  9. spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍

    [导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[71]篇文章,欢迎阅读和收藏] 1 基本概念 Spark 架构采用了分布式计算中的 Master-Slave 模型. Ma ...

最新文章

  1. qt练习11 鼠标,按键,滚轮事件学习
  2. 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?
  3. Python为图像添加文本内容(Writing Text on Image)
  4. python使用fpdf2包和pdfrw报包新内容添加到已有的PDF页面上
  5. TouTiao开源项目 分析笔记7 加载数据的过程
  6. 递归 将一个整数逆序
  7. [pytorch、学习] - 9.1 图像增广
  8. UVA-1623 Enter The Dragon (贪心)
  9. 自学python能找到工作吗-自学 Python,我是如何找到工作的?
  10. 【图像边缘检测】基于matlab CNN灰度图像边缘提取【含Matlab源码 490期】
  11. log4j日志级别配置详解
  12. 顶级赛事 | 2019 CCF BDCI,最值得参与的国际大数据及AI赛事之一
  13. 循环日程表递归法c语言,分治与递归——循环赛日程表
  14. c# Pdf文件加密和解密
  15. 引用 和指针 ,简单, 一怔见血
  16. 平台电子签章实现方法
  17. 使用shell脚本来监控域名过期时间
  18. 操作系统原理课程设计任务书
  19. 流程图中参与者_探索流程参与者的移动流程门户
  20. 缺陷跟踪管理工具-Mantis BugFree Bugzilla

热门文章

  1. android的基础书本资料,安卓入门资料
  2. 和平区:96127升级为营商环境呼叫中心受理热线
  3. 关于实时TopN排名算法的思考
  4. SAP喊出“在中国,为中国”的口号
  5. XmlDocument操作XML
  6. 1688网数据抓取-js抓取篇
  7. 局域网不同网段ip互访
  8. format常见用法
  9. android permission denial starting intent,adb shell 启动应用时的权限问题
  10. Python Broadcast机制