0
点赞
收藏
分享

微信扫一扫

1001-HBase基本概念


一、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机制 





1001-HBase基本概念_hbase






四、目录表(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 格式 ([table],[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_

举报

相关推荐

0 条评论