Hbase经典深入浅出分析.docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hbase经典深入浅出分析

Hbase经典深入浅出分析 本文基于环境hadoop-0.16.4 和 hbase-0.1.3 编写 Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。 Hbaes的目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。 Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统,那么我们就先要了解Hadoop文件系统的基本特性和原理,才能更好地理解Hbase的工作方式。 Hadoop文件系统 Hadoop文件系统是一个能够兼容普通硬件环境的分布式文件系统, 和现有的分布式文件系统不同的地方是Hadoop更注重容错性和兼容廉价的硬件设备,这样做是为了用很小的预算甚至直接利用现有机器就实现大流量和大数据量的读取。 Hadoop 使用了POSIX(可移植性操作系统接口 Hadoop文件系统命名空间 Hadoop文件系统使用的是传统的分级文件体系,客户端程序可以创建目录并且在目录里面保存文件,类似与现在一般的文件系统。Hadoop允许用户创建、删除文件,在目录间转移文件,重命名文件等,但是还没有实现磁盘配额和文件访问权限等功能,也不支持文件的硬连接和软连接(快捷方式),这些功能在短期内不会实现。 目录节点负责存储和管理整个文件系统的命名空间,应用程序可以指定某一个文件需要在Hadoop文件系统中冗余多少份,这个在Hadoop中称为冗余因素,保存在目录节点里面。 Hadoop存储原理 冗余数据保存 Hadoop文件系统是为了大文件的可靠保存而设计的,一个文件被划分成一连串的数据块,除了文件的最后一块以外其它所有的数据块都是固定大小的,为了数据容错性,每一个数据块都会被冗余存储起来,而每个文件的块大小和冗余因素都是可以设置的,程序可以设置文件的数据块要被复制多少份,而且这个冗余因素除了可以在创建的时候指定,还可以在之后改变。在Hadoop文件系统里面文件只会被写入一次,并且任何时间只会有一个程序在写入这个文件。 目录节点是根据数据块的冗余状况来作出处理决策的,数据节点会定期发送一个存在信号(Heartbeat)和数据块列表给目录节点,存在信号使目录节点认为该数据节点还是有效的,而数据块列表包括了该数据节点上面的所有数据块编号。 数据存取策略 复制策略是hadoop文件系统最核心的部分,对读写性能影响很大,hadoop和其它分布式文件系统的最大区别就是可以调整冗余数据的位置,这个特性需要很多时间去优化和调整。 一、数据存放 目前hadoop采用以机柜为基础的数据存放策略,这样做的目的是提高数据可靠性和充分利用网络带宽。当前具体实现了的策略只是这个方向的尝试,hadoop短期的研究目标之一就是在实际产品环境中观察系统读写的行为,测试性能和研究更深入的规则。 一个大的hadoop集群经常横跨多个机柜,而不同机柜之间的数据通讯同经过交换机或者路由,所以同一个机柜中不同机器的通讯带宽是比不同机柜之间机器通讯时候的大。 Hadoop提供了一个api来决定数据机所属的机柜id,当文件系统启动的时候,数据机就把自己所属的机柜id发给目录机,然后目录机管理这些分组。 Hadoop默认是每个数据机都是在不同的机柜上面,这种方法没有做任何性能优化,但是也有不少优点: 数据可靠性是最高的。因为这样可以防止机柜出错的时候数据丢失。 在读取数据的时候充分利用不同机柜之间的带宽。 而且这个策略可以很容易的完成负载平衡和错误处理。 缺点就是写入数据的时候并不能完全利用同一机柜里面机器的带宽。 在默认的配置下,hadoop的冗余复制因子是3,意思就是每一块文件数据一共有3个地方存放,hadoop目前的存放策略是其中两份放在同一个rack id的不同机器上面,另外一个放在不同rack id的机器上面,简单来说就是1/3的冗余数据在一个机柜里面,2/3的冗余数据在另外一个机柜里面,这样既可以防止机柜异常时候的数据恢复,又可以提高读写性能。 上面所说的策略目前还是在测试优化阶段。 二、数据读取 数据读取策略,根据前面所说的数据存放策略,数据读取的时候,客户端也有api确定自己的机柜id,读取的时候,如果有块数据和客户端的机柜id一样,就优先选择该数据节点,客户端直接和数据节点建立连接,读取数据。如果没有,就随机选取一个数据节点。 三、数据复制 主要是在数据写入和数据恢复的时候发生,数据复制是使用流水线复制的策略。 当客户端要在hadoop上面写一个文件,首先它先把这个文件写在本地,然后对文件进行分块,默认64m一块,每块数据都对hado

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档