大数据技术-HBase:HBase简介

来源:互联网 发布:java开发环境下载 编辑:程序博客网 时间:2024/05/01 21:15

什么是HBase?

HBase是一个开源的,分布式,列式存储系统,基于Google Bigtable的大规模结构化数据存储系统实现。如果需要详细了解下Google的Bigtable,可以参考这个链接:

http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/bigtable-osdi06.pdf

此外HBase对Bigtable的架构设计做了相应增强,主要的features如下:

1、可以易于与Hadoop MapReduce整合的相关Classes;

2、实时查询优化;

3、提供REST-ful服务网关,支持XML, Protobuf和二进制数据编码选项;

4、基于JRuby的shell操作;

5、高效的Thrift服务网关;

6、支持导出监控点存入Ganglia或者通过JMX的形式


为什么需要使用HBase?

当你需要很强的容错性,强一致性,在大数据集上实现随机实时读写的时候,HBase是个不错的选择。HBase的目标是托管大表--数十亿行,数百万列,基于廉价服务器的存储之上。HBase底层采用HDFS,而文件系统一般是具有冗余因子的,从而在存储层上保证了数据不会丢失。

传统RDBMS在处理大数据量的表时代价高昂,很多worklods已经超出了系统处理能力,十分耗时且低效,即便采用商业版本的也是需要大额资金的投入。而HBase Scan操作所用时间线性可控。HBase采用的数据模型可动态自动化扩展,当达到一定限制自动sharding,而对使用方来说是透明的,这样同时达到了数据可用性和容错性目的。

HBase可以看做一个分布式的map,以rowkey作为key,tag和data组成的数据作为value,每一个cell都有自己的timestamp和versions,这种多版本和时间戳的方式可以避免并发编辑的冲突。行row是作为字典序byte升序排列的默认。

Tables被分为多个region托管在不同的regionserver上,hbase master负责管理region分配,达到负载均衡和故障快速恢复的目的。如果某个regionserver因为某个原因down掉了,master会重新将其上原有的region重新分配到其他存活的regionserver上,这个过程一般而言是比较快的,因为只是重新建立下内存结构,并修改下meta元信息,本身的数据还是存储到hdfs上的,可以共享。



哪些情况下不太适合HBase?

当你的数据并不是很大;

当你访问数据是顺序访问,且数据结构固定,易于用M/R;

当你离不开SQL来完成事情;

当你需要在一致性和可用性上做权衡;

当你需要跨表查询且条件很复杂;

...



z怎样尝试使用HBase?

合理的物理服务器配置参考如下:

  • Dual quad core CPU
  • 8 GB RAM or more (4 GB is passable, but constrain MapReduce to only 1 concurrent mapper and reducer per node)
  • 4 x 250 GB data disk attached as JBOD (for the DataNode process)

0 0
原创粉丝点击