您的位置:首页 > 其它

1001-HBase基本概念

2015-06-08 17:47 246 查看
一、HBase的基本概念
HBase 是一个分布式,可扩展的,大规模面向列的开源数据库。

特点:
①强一致性读写: HBase 不是 "最终一致性(eventually consistent)" 数据存储. 这让它很适合高速计数聚合类任务。

②自动分片(Automatic sharding): HBase 表通过region分布在集群中。数据增长时,region会自动分割并重新分布。

③RegionServer 自动故障转移

④Hadoop/HDFS 集成: HBase 支持本机外HDFS 作为它的分布式文件系统。

⑤MapReduce: HBase 通过MapReduce支持大并发处理, HBase 可以同时做源和目标.

⑥Java 客户端 API: HBase 支持易于使用的 Java API 进行编程访问.

⑦Thrift/REST API: HBase 也支持Thrift 和 REST 作为非Java 前端.

⑧Block Cache 和 Bloom Filters: 对于大容量查询优化, HBase支持 Block Cache 和 Bloom Filters。

二、什么时候用 HBase
①当你需要随机,实时读写你的数据时候可考虑使用HBase。
②确信有足够多数据,如果有上亿或上千亿行数据,HBase是很好的备选。 如果只有上千或上百万行,则用传统的RDBMS可能是更好的选择。
因为所有数据可以在一两个节点保存,集群其他节点可能闲置

三、HBase和HDFS区别

①HDFS:分布式文件系统,适合保存大文件,但不能提供个别记录的查询

②HBase:是分布式,可扩展,大规模面向列存储的数据库,底层采用hdfs存储hbase的数据,采用mapreduce处理hbase数据。HBase是基于HDFS且提供大表的记录快速查找(和更新),内部将数据放到索引的“存储文件”,以提高查询速度,存储位置在hdfs上

③HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式
④HBase利用Hadoop HDFS作为其文件存储系统,为HBase提供了高可靠性的底层存储支持
⑤HBase同样利用Hadoop MapReduce来处理HBase中的海量数据,为HBase提供了高性能的计算能力
⑥HBase利用ZooKeeper提供了稳定服务和failover机制



四、目录表(Catalog Tables)
目录表 -ROOT- 和 .META. 作为 HBase 表存在。他们被HBase shell的
list 命令过滤掉了,
但他们和其他表一样存在。
4.1 ROOT
-ROOT- 保存 .META. 表存在哪里的踪迹. -ROOT- 表结构如下:

Key:

.META. region key (
.META.,,1
)

Values:

info:regioninfo
(序列化.META.的 HRegionInfo 实例 )
info:server
( 保存 .META.的RegionServer的server:port)
info:serverstartcode
( 保存 .META.的RegionServer进程的启动时间)

4.2 META

.META. 保存系统中所有region列表。 .META.表结构如下

Key:

Region key 格式 (
,[region start key],[region id])

Values:

info:regioninfo
(序列化.META.的 HRegionInfo 实例 )
info:server
( 保存 .META.的RegionServer的server:port)
info:serverstartcode
( 保存 .META.的RegionServer进程的启动时间)

参考资料:
http://wenku.baidu.com/link?url=j7HrnrgBut_Hvu-xX3pz73BM8_HZiGwXOXMn_LL_mjTwQKnhADY7-JU-EJbTucaB5AlOkJxxCJ00dbfYph1x7UnG3MPnVociCVvLfAfbQp_
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: