傻大方


首页 > 学习 >

Hadoop|Hadoop体系架构概述(完整版)



按关键词阅读: 体系 完整版 架构 概述 hadoop

1、Hadoop体系架构概述体系架构概述 Hadoop概述概述 基于Apache基金会下的一个开源项目 , 致力于开发一个可靠的、大规 模的分布式计算框架 用户可采用简单的计算模型在计算机集群下对大规模的数据进行分布 式处理 设计理念之一是扩展单一的服务器为成千上万机器的集群 , 且集群中 每一个机器同时提供本地计算力和存储力 Hadoop框架是在应用层检测和处理硬件失效问题 , 而不是依赖于硬件 自身来维持高可用性 。
在Hadoop框架集群中硬件失效被认为是一种常态 , 集群的高可用性服 务是建立在整个集群之上的 分布式文件系统(Hadoop Distributed File System , HDFS) 并行计算 。

2、模型(Map/Reduce) 列式数据库(HBase) 数据仓库(Hive) 数据分析语言(Pig) 数据格式转化工具(Sqoop) 协同工作系统(Zookeeper) 数据序列化系统(Avro) HDFS (Hadoop Distributed File System) Map/Reduce (Job Scheduling/Execution System) Hbase (Column Database) Pig (Data Flow) Hive (SQL) Sqoop ETL ToolsBI ReportingRDBMS AvroSeria lization) Zookeep er(Coo 。

3、rdi nation) Hadoop整体框架整体框架 Hadoop整体框架下特点整体框架下特点 Hadoop主要在多节点集群环境下 以数据存储为基础 最大限度兼容结构化数据格式 以数据处理为目的 且其数据操作技术多样化 HDFS概述概述-基本特征基本特征 基于商用硬件环境 HDFS具有高容错性 , 并且被部署在廉价的硬件之上 HDFS向应用程序提供高的数据吞吐访问 , 适合于需 要处理大规模海量数据集的应用 HDFS遵循部分POSIX协议要求 , 可以确保应用程序以 流的方式访问文件系统数据 HDFS的对现实应用环境的假设及其目标的对现实应用环境的假设及其目标 硬件失效 流式数据访问 海量数据集 追加写入 。

4、及文件同步 “移动计算比移动数据的代价小” 跨异构硬件和软件平台的可移植性 1. 硬件失效 。
在HDFS中 , 硬件失效是常态而不是意外 。
一个真实的HDFS环境可能由上百或上千的机器组成 , 每一个机器存 储文件系统中的部分数据 。
集群中大量的机器都有极高的可能性会发生硬件故障而失效 , 这一真实的情况表明HDFS集群中的 部分机器总是处于非正常工作状态 。
因此 , 检测机器失效并快速自动恢复发生故障的机器是HDFS的核心架构目标 。
2. 流式数据访问 。
运行在HDFS之上的应用程序需要流式访问其数据集 , 这与运行在常规文件系统上的通用应用程序不一样 。
HDFS更适用于批量数据处理而不是用户的交互性使用 。
HDFS的重点 。

5、是强调数据的高吞吐访问而不是数据的低延迟访问 。
POSIX 规定了很多的硬性要求 , 这些要求对运行在HDFS上的应用程序而言是非必须的 。
但是 , HDFS在几个关键领域引入了POSIX语义 来提高数据的吞吐率 。
3. 海量数据集 。
运行在HDFS上的应用是建立在海量数据集之上的 。
HDFS被设计来存储大文件 , 通常HDFS中的文件大小应该是 千兆字节到兆兆字节 。
HDFS必须具备有很高的总数据带宽 , 其单一集群规模能够容乃成千上万的机器节点 , 并且一个HDFS集 群能够支撑数以万计的文件量 。
4. 追加写入及文件同步 。
大多数的HDFS应用都需要“一次写多次读”的文件访问模式 。
HDFS具有两种高级特征:刷新缓存 ( 。

6、hflush)和文件添加(append) 。
刷新缓存使得一个未关闭文件的最后一个块对访问者可见的同时提供了读一致性和数据持 久性 。
文件添加提供了在一个已关闭文件的末尾添加额外数据的机制 。
5. “移动计算比移动数据的代价小” 。
应用所需要的计算如果在数据的附近实施效率更高 , 这一特性在数据量特别庞大时会显 得更加明显 。
数据处理的本地化会最大限度地减少网络拥塞 , 并且提高系统整体的吞吐量 。
因此 , 在HDFS中假设移动计算至 数据的存储位置比移动数据至应用程序运行位置更好 。
为了实现这一假设 , HDFS为应用提供了接口来移动应用自身到接近数 据的储存点 。
6. 跨异构硬件和软件平台的可移植性 。
HDFS设计的目标 。

7、之一是能够简单的从一个平台移植到另一平台 。
这便于大量的应用选择 HDFS作为一个平台而广泛使用 。
HDFS架构架构 主从(Master/Slave)体系结构 只含有一个NameNode主服务节点这个节点管理文件系统中的命名空间和调度客服端对文件的访问 通常一个机器就是一个DataNode数据节点 , DataNode管理本节点上数据的存储 在HDFS内部 , 一个文件被分割为一个或多个数据块 , 并且这些数据块被存储在一批DataNode中 。
NameNode执行文件系统中命名空间的操作(打开、关闭、重命名文件和目录) , NameNode需要执行数据 块到DataNode映射的决策 DataNode负责响应 。

8、来自客户端的文件读写要求 , 也要负责执行来自NameNode的关于数据块创建、删除 和冗余存储的指令 Client MetaData ops Write NameNodeMetaData(Name, replicas, ) Clien t DataNodesDataNodes Block ops Read Blockss Replication NameNode同DataNode都是可以架设在普通商品机上 , 一个典型的HDFS集群中部署一个专用机做为NameNode , 其余的机器部署为DataNode 。
虽然 , 这个体系结构并不排除把一个机器做为多个DataNode节点 , 但是这样的情况在实际部署中很少 。

9、发生 。
单NameNode结构极大的简化了 集群的系统结构 , NameNode主管并且存储所有的HDFS的元数据(MetaData) , 系统中用户数据绝不会流过NameNode节点 。
Map/Reduce简介简介 一种用于在大型商用硬件集群中(成千上万的节点)对海量数据(多个兆兆 字节数据集)实施可靠的、高容错的并行计算的软件系统 一个最先由Google提出的分布式计算软件构架 基本原理 将一个复杂的问题 , 分成若干个简单的子问题进行解决 。
然后 , 对子问 题的结果进行合并 , 得到原有问题的解 Map/Reduce概念概念 Map和Reduce是编程语言中的概念 , 都是处理数据集合的函数 Map在处理数据序列 。

10、的过程中只处理当前的数据信息 , 不需要跟之前 处理的状态信息交互 主结点读入输入数据 , 把它分成可以用相同方法解决的小数据块 , 然 后把这些小数据块分发到不同的工作节点上 , 每一个工作节点循环做 同样的事 , 这就形成了一个树行结构 , 而每一个叶子节点来处理每一 个具体的小数据块 , 再把这些处理结果返回给父节点 Reduce在处理过程中却依赖之前处理的结果 , 同时生成的结果也被后 续的处理使用 。
结点得到所有子节点的处理结果 , 然后把所有结果组 合并且返回到输出 一个Map/Reduce任务会把一个输入数据集分割为独立的数据块 , 然后 Map任务会以完全并行的方式处理这些数据块 。
Map/Reduce系统自动 对Map 。

11、任务的输出分类 , 再把这些分类结果做为Reduce任务的输入 。
无论是任务的输入还是输出都会被存储在文件系统中 。
Map/Reduce系 统关注任务调度、任务监测和重新执行失败的任务 Map/Reduce模型模型 计算节点和存储节点的一致性是因为Map/Reduce系统和HDFS运行在同样的节点结合上 。
这样的配置允许Hadoop框架有效的调度任务在那些数据已经准备好了的节点上 , 这样 的好处是整个集群中总带宽非常的高 。
Map/Reduce的一个特点是可以用Map和Reduce 方法来处理分布式计算问题时 , 尽可能的实现数据处理的本地化 , 降低由数据移动而 产生的代价 。
这里的每一个Map操作都是相对独立 。

12、的 , 所有的Maps都是并行运行的 ,虽然实践中会受到数据源和CPU个数的影响 。
同样的 , 这里用一个Reduce集合来执行 Reduce操作 , 所有带有相同key的Map输出会聚集到同一个Reduce 。
虽然这个过程看上 去没有串行计算来得高效 , 但是Map/Reduce能够处理一般服务器所不能处理的大数据 量处理问题 。
大型的服务器集群可以在几个小时内处理千兆兆数据量的排序问题 。
而 并行处理可以提供部分容错和出错恢复的功能 。
Map/Reduce系统由单一的JobTracker主节点和若干个TaskTracker从节点组成 , 其中每一 个集群节点对应一个TaskTracker节点 。
主节点负责调度任务的各个 。

13、组成任务到从节点上 ,监控并且重新执行失败的组成任务;从节点执行主节点安排的组成任务 。
Map/Reduce的Map和Reduce过程都定义了键值对()的数据结构 , 即系统 视任务的输入数据为键值对集合 , 并且产生键值对结合做为任务的输出 。
一次 Map/Reduce任务的输入输出格式: (input) - map - - combine - - reduce - (output) 。
一次Map/Reduce任务过程 。
用户提交任务给JobTracer , JobTracer把对应的用户程序中 的Map操作和Reduce操作映射至TaskTracer节点中;输入模块负责把输入数据分成小数 据块 , 然后把它们 。

14、传给Map节点;Map节点得到每一个key/value对 , 处理后产生一个或 多个key/value对 , 然后写入文件;Reduce节点获取临时文件中的数据 , 对带有相同key 的数据进行迭代计算 , 然后把终结果写入文件 。
6 write 5 remote write 4 local write 3 read User Program TaskTracer TaskTracer TaskTracer TaskTracer TaskTracer Chunk1 Chunk2 Chunkn 1 fork1 fork 2 assign map Output Output Input files 1 fork。

15、2 assign reduce JobTracer Map phase Intermediate files (on local disk) Reduce phase Output files Map/Reduce处理过程处理过程 Map/Reduce优缺点优缺点 Map/Reduce通过工作状态的返回有效处理了单点 失效的问题 Map/Reduce是隶属于大粒度的并行计算模式 , 并 行节点间在Map阶段中和Reduce阶段中无法通信 ,也并非是一种万能的数据处理模型 Hbase简介简介 可提供随机的、实时的大数据读写访问 目标是在商用硬件上存储非常大的表数十亿的行数百万的列 开源的、分布式的、 。

16、版本化的、面向列的存储模型 对Google公司Bigtable系统的开源模仿 , 建立在Hadoop和HDFS之上提 供类Bigtable的存储力 Hbase数据模型数据模型 按预先定义好的列族(Column family)结构来存储数据 , 即每一条数据 有一个key以及若干个列属性值组成 , 每列的数据都有自己的版本信息 数据是按列进行有序存储的 , 不同于关系型数据库中按行存储 两种方式的数据操作 , 通过对有序key值进行扫描查询 , 获取value值 ,或者借助强大的Hadoop来进行Map/Reduce查询 采用了强一致性的读写保证 , 数据会在多个不同的域(region)中进行 保存 。
列族可以包含无限多个数 。

【Hadoop|Hadoop体系架构概述(完整版)】17、据版本 , 每个版本可以有自己的TTL( Time to Live , 生命周期) 通过行级锁来保证写操作的原子性 , 但是不支持多行写操作的事务性 。
数据扫描操作不保证一致性 HBase下表的逻辑视图下表的逻辑视图 行键(Row key) 时间戳(Time stamp) 列族(Column family) 列(Column) Row keyTime stamp Column family A Column a key tn t1value1 在创建一张表时 , 必须定义行键名及所需列族的列族名 , 理论上一张表在创建时可以无限制地定义列族 个数 , 而时间戳会由系统自动生成 。
列无需在创建表时定义 , 可以在使用时随意定 。

18、义使用 , 一个列族下 同样可以无限制的定义列的个数 。
虽然 , HBase中可以任意的定义列族个数及附属列的个数 , 但是只需 能够保证任意一列不为空时 , 该行即为有效行 。
HBase下表的物理视图下表的物理视图 在HBase中采用的稀疏存储 , 物理存储过程中细化到一个单元(Cell) 。
在逻辑视图中 , 任意一行不会空的每一列都被称作为一个单元 。
单元 联同行键、时间戳、列族名、列名做为完整的一行存储到文件系统中 ,并且这个存储过程中会自动排序 , 先在各行键间以字母升序排列 , 再 在同行键间以时间戳降序排列 。
Row keyTime stampColumn familyColumnValue keytnColumn。

19、family A keyt1Column family A Column a value1 一张表创建的初始阶段其中只含有一个Region , 随着表中数据的量的不断增多 , 一个Region会分裂为两个Region , 然 后不断重复上述过程 , 并且Region会被存储到HDFS中不同的DataNode上 。
Region包含有一个或多个的Store , 其数量 增长过程同表中的Region数量增长过程一致 。
但是Store中分为两个部分:第一个部分是Memstore , 一个Store中只包 含一个Memstore , 并且Memstore存储在内存空间中;第二个部分是Storefile , 此部分由Memstore写入硬盘 。

20、而得 。
随 着Memstore写入硬盘的次数增多 , Storefile的数量也会增加 , 当文件个数增加到一定量时 , 系统会自动对Storefile文 件进行合并 。
合并过程中主要完成以下几个工作:1.具有相同行键的行存放在一个文件中;2.扔掉被标志为删除的行; 3.扔掉时间戳过期的行 , 完成更新操作 。
随着合并操作的频繁执行Storefile会变得很大 , 达到一定文件大小时自动分 裂文件 , 贴合HDFS中对一个块数据大小的定义 。
HBase的一张表中的多个列族(Column Family) , 在物理存储上一个列族对应一个文件夹 , 一个文件夹中可包含若干 个Hfile文件 。
Hfile是图(2-4)中Storefile 。

21、的底层文件格式 , StoreFile就是对Hfile做了轻量级包装 。
Memstore Storefile Storefile 单一键值 Table Region Store 包含零个 或多个 包含一个或多个 包含一个或多个包含一个 达到一定阈值时写 入硬盘 文件个数达到一定 阈值时合并 文件大小达到一定 阈值时分裂 Hbase物理存储过程物理存储过程 一个Hfile中包含有若干个数据块(Data block)和对应数量的元数据块(Meta block) 。
数据块中以键值对形式存放的用户数据被称之为记录(Record) , 一条记录保存一个键 值对或者说保存一个单元的数据;元数据块其主要作用是判断一 。

22、个键值是都在当前Hfile 文件中;文件信息(FileInfo)中保存了与该HFile相关的一些信息 , 其中有系统保留的 一些固定的值 , 也可以保存用户自定义的一些值;数据块索引(Data Block Index)保存 的是每一个数据块在HFile文件中的位置、大小信息以及每个块的第一个单元的键值; 元数据索引(Meta Block Index)的格式与数据库索引相同 , 元数据块索引保存的是每 一个元数据在HFile文件中的位置、大小信息以及每个元数据的键值;文件尾(Fixed file trailer)主要保存了该Hfile的一些基本信息 , 其大小固定 , 主要是可以根据它查找到 Fileinfo , Block Index的起始位置 。
Hfile的文件结构的文件结构 Data Block 1 Data Block N Meta Block 1 Meta Block N Fileinfo Data Block Index Meta Block Index Fixed file trailer 温馨提示: 本PPT课件下载后 , 即可编辑修改 ,也可直接使用 。
(希望本课件对您有所帮助) 。


    稿源:(未知)

    【傻大方】网址:/a/2021/0815/0023740259.html

    标题:Hadoop|Hadoop体系架构概述(完整版)


    上一篇:Hadoop|Hadoop体系架构概述(完整版)

    下一篇:幼儿园|幼儿园五一劳动节主题策划案