细细品味Hadoop_Hadoop集群(第11期)_HBase简介及安装.pdf

所需积分/C币:9 2013-09-18 14:18:32 1.12MB PDF

细细品味Hadoop_Hadoop集群(第11期)_HBase简介及安装.pdf
创建时间 修改时间 修改次数 体系结构 的服务器体系结构遵从简单的主从服务器架构,它由 服务器( )群和 服务器( )构成 服务器负 责管理所有的 服务器,而 中所有的服务器都是通过 来进行协调, 并处理服务器运行期间可能遇到的错误。 本身并不存储 中的任何数据 逻缉上的表可能会被划分成多个 ,然后存储到 群中。 中存储的是从数据到 的映射。因此, 体系 结构如图所示。 b'y 200abecer MAster HRagienServer HReg eserver Store C Memstgre ore Mem store .Mens:ore【 Stoe( EmSton SluieFilH SwedE HFile DES Gien! Cent Uat是Noe BaraNor Data Node ANOde Dafa Noce 图 体系结构 使用 的机制与 和 进行通信,对于 管理类操作, 进行 对于数据读写类操作, 进行 中除了存储了 表的地址和 的地址, 也会把自己以 方式注册到 中,使得 可以随时感知到各个 的健康状态。此外, 也避免了 的单点问题 每台 都会 通信 的主要任务就是要告诉每台 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时间 修改时间 修改次数 它要维护那些 当一台新的 登求到 时, 会告诉它等待分配数据。而当 台 死机时, 会把它负责的 标记为未分配,然后再把它们分配到 其他 没有单点问题() 中可以启动多个 通过 的 机制保证总有一个 在功能上主要负责和 的管理工作: ●管理用户对的增、删、改、查操作 ●管理 的负载均衡,调整 分布 在 后,负责新 的分配; 在 停权后,负责失效 上的 迁栘。 当表的大小超过设置值的时候, 会自动地将表划分为不同的区域,每个区域包 含所有行的一个子集。对用户来说,每个表是一堆数据的集合,靠主键来区分。从物理上 来说,一张表被拆分成了多块,每一块就是一个 。我们用表名开始结束主键,来 区分每一个 个 会保存一个表里面某段连续的数据,从开始主键到结束 主键,张完整的衣格是保存在多个 上面 Tabie with splits Assignment to regionservers Keys:阳02 Keys: 12-4) rs2 Keys: (4-7) - rs3 Keys: [8-0 分裂 上图表示当随着记录数不断增加而变大后,会逐渐分裂成多份,成为 个 由 衣示,不同的 会被 分配给相应的 进行管理。 所有的数据库数据一般是保存存 分布式文件系统上面,用户通过一系列 获取这些数据,‘台机器上面般只运行·个 ,且每个区 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时 修改时间 修改次数 段的 也只会被一个 维护。下面是 数据存储关系图。 口口口 REgion口口口 Store File StpreFile I HFile ( Memstore )Store REgion口口口 storeWide Cient I THFe puto deleted C Memstore Store incro Keyvalues REgion口口口 Stonelike StoreFile U HFile HFile Log Flusher synco Lag Roller rolwriterO 数据存储关系 主要负责响应用户请求,向文件系统中读写数据,是 中最核心的模块 内部管理了一系列 对象,每个 对应了 中的 中由多个 组成每个 对应了中的个 的存储,可以看出每个 其实就是一个集中的存储单元,因此最好将具备共 同特性的放在一个 中,这样最高效。 存储是 存储的核心了,其中由两部分组成,一部分是 部 分是 是 ,用户写入的数据首先会放入 当 满了以后会成个 (底层实现是),当 文件数 量增长到一定阈值,会触发 合并操作,将多个 合并成一个 合并过程中会进行版本合并和数据删除,因此可以看出 其实只有增加数据,所有的 更新和删除操作都是在后续 过程中进行的,这使得用户的写操作只要进入内存 中就可以立即返回,保讦了 的高性能 后,会逐步形成越 米越大的 当单个 大小超过一定阈值后,会触发操作,同时把当前 成个 父 会下线,新出的个孩子 会被 分配到相应的 上,使得原先个 的压力得以分流到个 下图描述了 和的过程 StoreFilel(64MB) Storefiles StorefileSa (128MB (128MB)3 Store File2(64MB) Stcrefile5 : S Store File3 (64M8 (256MB) StorefilesB Store File 128MB StoreFile4(64MB) (128MB) 图 和的过程 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时间 修改时间 修改次数 在理解了上述 的基本原理后,还必须了解一下 的功能,因为上述的 在系统正常工作的前提下是没有问题的,但是在分布式系统环境中,无法避免系统出错或者 宕机,因此一旦 意外退出, 中的内存数据将会丢失,这就需要引 入了。每个 中都有一个 对象 是一个实现 的类,在每次用户操作写入 的同时,也会写一份数据到文件中( 件格式见后续), 文件定期会滚动出新的,并删除旧的文件(已持久化到 的数据)。当 意外终止后, 会通过 感知到 文中首 先会处理遗留的文件,将其中不同 的数据进行拆分,分别放到相应 的目录下,然后再将失效的重新分配,领取到这些 的 在 的过程中,会发现有历史需要处坦,因此会 中的数据到 中,然后到 ,完成数据恢复。 存储格式 中的所有数据文件都存储在 文件系统上,主要包括上述提出的两 种文件类型 中 数据的存储格式 是 的二进制格式文件, 实际上 就是对 做了轻量级包装,即 底层就是 )的存储格式,物理上是 的 )详细描述 下图是的存储格式: Data Data Data Meta Meta I Meta Meta File Into Index Index Trailer KeyKey「 KeyKey Key Key Magic value ValueValue Value Value value 图 存储格式 首先文件是不定长的,长度固定的只有其中的两块 和 。正如图 中所小的, 中有指针指向其他数据块的起始点。 中记录了文件的一些 信息,例如 等 块记录了每个块和块的起始 是 的基本单元,为了提高效率, 中有基于 的 机制。每个块的大小可以在创建一个的时候通过参数指定,大号 有利于顺序,小号利于随机查询。每个块除了开头的以外 就是·个个 对拼接而成, 内容就是些随机数字,目的是防止数据损坏 后面会详细介绍每个 对的内部构造 里面的每个 对就是一个简单的数组。但是这个数组里面包含 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时 修改时间 修改次数 了很多项,并且有固定的结构。我们来看看里面的只体结构 ey Key ValueRow Column Column Column Time Key Length LengthLength Row Family value Length Family Qualifier Stamp Type 4B 4B 2B 1B 8B 1B 图 具体结构 开始是两个固定长度的数值,分别表示的长度和的长度。紧接着是, 开始是固定长度的数值,表示 的长度,紧接着是 然后是固定长度的数 值,衣示 的长度,然后是 接着是 ,然后是两个固定长度的数值, 表 和 部分没有这么复杂的结构,就是纯粹的二 进制数据了。 详细描述 其实文件就是一个普通的 的是 对象, 中记录了写入数据的归属信息,除了和 名字外,同时还包括 和 是“写入时间”, 的起始值为, 或者是最近一次存入文件系统中 的 是 的 对象,即对应 中的 可参见上文描述。下图中示意了文件的结构 Region A R earon B Region C HLogKey HLogKey HLogKey Ikwa kane ka ey value 图 结构 表和 表 用户表的 元数据被存储在 表中,随着 的增多, 表中的数 据也会增大,并分裂成多个 为了定位 表中各个 的位置,把 衣中所有 的元数据保在 表中,最后由 记录 衣的位置 信息。所有客户端访问用户数据前,需要首先访问 获得 的位置,然后访 表获得 表的位置,最后根据 表中的信息确定用户数据存放的位置, 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时间 修改时间 修改次数 如图所小: Usertable META zookeeper file ROOT- UsertableN 图 定位示意图 表永远不会被分割,它只有一个 这样可以保证最多需要三次跳转就可 以定位任意一个 为了加快访问速度, 表的 全部保存在内存中,如 果 表中的每一行在内存中大约占,且每个 限制为 ,那么上图所 示的三层结构可以保存的 数目为:( 个。客户端会 将查询过的位置信息缓存起来,且缓存不会主动失效。如果客户端根据缓存信息还访问不到 数据,则询问只有相关 表的 服务器,试图获取数据的位置,如果还是失败, 则询问 表相关的 表在哪里。最后,如果前面的信息全部失效,则通过 重新定位 的信息。所以如果客户端上的缓存全部是失效,则需要进行 次网络来回,才能定位到正桷的 在 系统上运行批处理运算,最方便和实用的模型依然是 ,如卜图: Cutputs 扫口 rduce region 0 egon region 2 region 3 ,,, region 4 TOdUS Map Reduce 图 和 的关系,比较类似 和 的关系, 提供了配 套的 和 ,可以方便的将 作为 的 和,对于 应用开发人员来说,基本不需要关注 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时间 修改时间 修改次数 系统自身的细节 数据模型 是一个类似于 的分布式数据库,它是一个稀疏的长期存储的(存在硬 盘上)、多维度的、排序的映射表。这张表的索引是行关键字、列关键字和时间戳。 的数据都是字符串,没有类型 用户在表格中存储数据,每行都有一个可排序的主键和任意多的列。由于是稀松存储 所以同一张表里面的每行数据都可以由截然不同的列 列名字的格式是“ (列族限定符),都是又字符串组成的 每一张表有一个列族 集合,这个集合是固定不变的,只能通过改变表结构米改变 但是限定符( )的值相对于每一行来说都是可以改变的。 把同一个列族里面的数据存储在同一个目录底下,并且 的写操作时锁行 的,每一行来说都是一个原子元素,都可以加锁。 所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本, 会 保留一定数量的版本,这个值是可以设定的。客户端可以选择获取距离某个时间点最近的版 本单元的值,或者一次获取所有版本单元的值。 逻辑模型 我们可以将一个表想象成一个大的映射关系,通过行健、行健时间戳或行健列(列 族:列修饰符),就可以定位特定数据。由于是稀疏存储数据的,所以某些列可以空 白的。表 给出了 网站的数据存放逻辑视图,表中仅有一行数据,行的唯 标识为“ 对这行数据的每一次逻辑修改都有一个时间戳关联对应。表中 共有四列 每一行以前缀 的方式给出其所属的列族 表数据存储逻辑视图 行健时间戳列族: 列族 列族: 行健是数据行在表中的唯一标识,并作为检索记录的主键。在 中访问表中的行 只有三种方式:通过当个行健访问:给定行健的范围访问;全表扫描。行健可以任意字符串 (最大长度)并按照字典序进行存储。对于那些经常一起读取的行,需要对值精 心设计,以便它们能放在一起存储 概念模型 是按照列存储的稀疏行列矩阵,物理模型实际上就是把概念模型中的一行进行 河北工业大学—一软件工程与理论实验室 编辑:虾皮 创建时间 修改时间 修改次数 切割,并按照列族存储,这点在进行数据设计和程序开发的时候必须牢记。 上面的逻辑视图在物理存储的时候应该表现成下面的样子,如表所示。 表 物理上的存储方式 时问戳 列族: 行健 时间戳 列族: 行健 时间戳 列族 从表中可以看出表中的空值是不被存储的,所以查询时间戳为的“ 将 返回,同样查询时间戳为,“ 的项也返回。如果没有指明时间 戳,那么应该返回指定刎的最新数据值,并且最新的值在表格里也是最先找到的,因为它们 是按照时间排序的。所以,如果查询“ ”而不指明时间戳,将返回时刻的数据 査询“ 的 ”而不指明时间戳,将返回时刻的数据。这种存储结构还 有一个优势,可以随时向表中的任何一个列族添加新列,而不需要是事先说明。 分布式安装 先决条件 有三种运行模式,其中单机模式的配置非常简单,几乎不用对安装文件做任何修 改就可以使用,所以我们这里不再介绍 的单札模式的安装。从前面的讲解中,我们 知道如果要运行分布式模式, 是必不可少的。另外在邓 的某些文件进行配置 之前,还需要具备以下先决条件 :需要是 以上的版本 :由于 架构基」其他文件存储系统之上,因此在分布式模式卜安装 是必须的,但是,如果运行在单机模式下,此条件则可以省略。 需要注意的是, 是必须安装的,并且要保证用户可以到系统的其 他节点(包括本地节点)。因为,我们需要使用 来管理远程的 和 守护进程。 备注:在安装 的时候,要注意 的版本。也就是说,需要注意 和 之间的版本关系,如果不匹配,很可能会影响 系统的稳定性,在 的 目录下可以看到对应的 的文件。默认情况下,的文件下对应的 版本相对稳定。如果用户想要使用其他的 版本,那么需要将 系统安装目录 下的 ”文件和“ ”文件拷贝到 的文件夹 下,以替换其他版本的 文件 河北工业大学—一软件工程与理论实验室 编辑:虾皮

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐