Hadoop概念以及架构介绍
1 hadoop的意义
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的未来进行高速运算和存储。
Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里
对于Hadoop分布式文件系统(HDFS)来说,大数据处理通过三份以上存储来支持数据的高可用性。
2 Hadoop优点
- 高可靠性:Hadoop按位存储和处理数据的能力值得信赖
- 高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中
- 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快
- 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配
- 低成本:与一体机、商用数据仓库以及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的几个核心概念
- NameNode:管理文件系统命名空间(打开、关闭、重命名文件和目录,还确定了文件块在哪个DataNode上的路径),管理客户端对文件的访问,配置副本策略(复制因子,可为某个文件单独设置),记录对文件系统命名空间或其属性的任何更改。
- DataNode:存储文件块(负责提供来自文件系统客户端的读写请求,还根据NameNode的指令执行块创建、删除和复制),上传至HDFS的文件在内部被分成一个或多个块,这些块存储在一组DataNode中。
- Block:块,文件存储处理的逻辑单元,默认是64M。
数据写入过程
- Client向NameNode发起文件写入的请求
- NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息
- Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中
数据读取过程
- Client向NameNode发起文件读取的请求
- NameNode返回文件存储的DataNode的信息
- Client读取文件信息
5.2 MapReduce
先举个比较形象的例子
MapReduce是一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成
HDFS和MapReduce共同组成Hadoop分布式系统体系结构的核心
HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理
MapReduce V1架构
几个核心概念
- JobTracker:是主线程,它负责接收客户作业提交,调度任务到工作节点上运行,并提供诸如监控工作节点状态以及任务进度等管理功能。
- TaskTracker:后台程序,由jobtracker指派任务,实例化用户程序,在本地执行任务并周期性地向jobtracker汇报状态
- ResourceManager:处理客户端请求,启动或监控ApplicationMaster,监控NodeManager,资源的分配与调度
- NodeManager:管理单个节点上的资源,处理来自ResoucceManager的命令,处理来自ApplicationMaster的命令。
- ApplicationMaster:管理在YARN内运行的每个应用程序实例,负责协调来自ResourceManager的资源,并通过NodeManager的监视容器的执行和资源使用(CPU、内存等的资源分配)
- Container:是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
MapReduce V2/Yarn架构
MapReduce V2/Yarn 作业执行流程
- 用户作业提交
- ResourceManager 收到作业请求,将该请求发给scheduler,调度器分配第一个container,然后资源管理器在该container内启动Application manager
- Application manager找一台nodeManager启动Application Master,计算任务所需的计算
- Application master向Application manager的scheduler申请运行任务所需的资源
- scheduler将资源封装发给Application master;
- Application master将获取到的资源分配给各个nodeManager,并创建容器
- 各个nodeManager得到任务和资源开始在容器执行map task和reduce task,map task和reduce task将执行结果反馈给Application master
- Application master将任务执行的结果反馈给application manager,applicationMaster向ResourceManager注销并关闭自己,application manager反馈结果给用户。
5.3 Yarn
Yarn是一个分布式资源管理系统,负责集群机器资源的隔离、分配和管理
Yarn在真个hadoop生态处理中心枢纽的位置,各种分布式计算框架(MR、spark、tez、Flink)可以运行在Yarn上,让各种计算框架无需各自实现资源分配机制,更加纯粹专注做分布式计算相关工作
Hadoop概念以及架构介绍相关推荐
- Hadoop的概念及架构介绍
Hadoop的概念及架构介绍 Hadoop是大数据开发所使用的一个核心框架.使用Hadoop可以方便的管理分布式集群,将海量数据分布式的存储在集群中(hdfs),并使用分布式程序来处理这些数据.(Ma ...
- Druid基本概念及架构介绍
Druid基本概念及架构介绍 学习参考:https://www.apache-druid.cn/ Apache Druid是一个高性能的实时分析型数据库 作者:it_zzy 链接:https://ww ...
- Hadoop的存储架构介绍
http://lxw1234.com/archives/2016/04/638.htm 该文章介绍了Hadoop的架构原理,简单易懂. 目前公司提供Hadoop的运算集群BMR,可以直接申请集群资源. ...
- hadoop概念及框架介绍
一.Hadoop简介 1.Hadoop简介 1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运 ...
- hadoop系列(一)概念、组件介绍、安装环境、配置
hadoop系列(一)概念.组件介绍.安装环境.配置 一.大数据概念 概念 大数据:解决海量数据的采集.存储.分析计算的能力 大数据特点 Volume(大量) Velocity(高速) Variety ...
- 【云原生系列】云计算概念与架构设计介绍
1 什么是云计算 云计算是一种基于互联网的计算模式,在这个模式下,各种计算资源(例如计算机.存储设备.网络设备.应用程序等)可以通过互联网实现共享和交付.云计算架构设计的主要目标是实现高效.可扩展.可 ...
- 46.逻辑卷管理1,lvm架构,概念,常用命令介绍
LVM架构 LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的.lvm需要使用的软件包为lvm2.它的架构 相关概念 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍
[导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[71]篇文章,欢迎阅读和收藏] 1 基本概念 Spark 架构采用了分布式计算中的 Master-Slave 模型. Ma ...
最新文章
- qt练习11 鼠标,按键,滚轮事件学习
- 如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?
- Python为图像添加文本内容(Writing Text on Image)
- python使用fpdf2包和pdfrw报包新内容添加到已有的PDF页面上
- TouTiao开源项目 分析笔记7 加载数据的过程
- 递归 将一个整数逆序
- [pytorch、学习] - 9.1 图像增广
- UVA-1623 Enter The Dragon (贪心)
- 自学python能找到工作吗-自学 Python,我是如何找到工作的?
- 【图像边缘检测】基于matlab CNN灰度图像边缘提取【含Matlab源码 490期】
- log4j日志级别配置详解
- 顶级赛事 | 2019 CCF BDCI,最值得参与的国际大数据及AI赛事之一
- 循环日程表递归法c语言,分治与递归——循环赛日程表
- c# Pdf文件加密和解密
- 引用 和指针 ,简单, 一怔见血
- 平台电子签章实现方法
- 使用shell脚本来监控域名过期时间
- 操作系统原理课程设计任务书
- 流程图中参与者_探索流程参与者的移动流程门户
- 缺陷跟踪管理工具-Mantis BugFree Bugzilla