欢迎投稿

今日深度:

Hbase笔记,

Hbase笔记,


官方网站:http://hbase.apache.org/ programming guide: http://hbase.apache.org/book.html#quickstart HBase 以列为单位聚合数据,基于“对于特定查询,不是所有列的值都是必须的”的假设。列式存储更有利于压缩。比较适合键值对或者有序数据的存放。HBase源于google的BigTable论文。
基本概念: 行:Row key(行键)的值来确定,行键总是唯一。一列或者多列 列:每列可能有多个版本,在每个单元格(cell)中存储了不同的值。每列的值或单元格都有时间戳。 簇:若干列构成一个列簇(column family),一个列簇的所有列储存在同一个底层的存储文件里,该文件为HFile 列的数量没有限制,常见的引用列形式: famlily: qualifier 自动分区:hbase中扩展和负载均衡的基本单元是region,本质上是以rowkey排序的连续存储的区间。如果region太大,系统会把它们动态拆分,相反会把多个region合并,以减少存储文件数量。拆分的时候按照中间key划分为两个大致相等的子region。每一个region只能由一台region server加载,一个server可以同时加载多个region.

启动: bin/start-hbase.sh 停止:bin/stop-hbase.sh shell:bin/hbase shell >exit
>status: 查看server状态。
> create 'scores','grade','course' //创建表score,有两个列簇
>list //查看当前hbase中有哪些表 >list 'scores' //查看表是否存在 >desc 'scores' //查看表的结构
> put'scores','zkb','grade:g1','5' //加入一行数据行名称为zkb列族grade的列名为g1,值为5 > put'scores','zkb','course:math','97' //给zkb这一行的数据添加一列math到列簇course,值为97 > put'scores','zkb','course:art','87' //同理,给zkb这一行的数据的列族course添加一列<art,87>
>scan 'scores' //按一定条件检索表数据
>get 'scores','zkb' //按rowkey获得单行数据 >scan'scores',{COLUMNS => 'course'} //查看scores表中所有数据courses列族的所有数据
>delete 'scores','myrow-1','colfam1:q2' //删除单元格 >disable 'scores' >drop 'scores' //必须先disable,才可以drop
CRUD操作 create, read, update, delete:增查改删
HA HBase设置HA(zookeeper实现,启动两个hbase server,standby实时同步数据,HMaster挂掉后开始起作用)
RowKey 1,设置RowKey为timestamp情形,当行数增加到一定个数,一个region大小超过了预设值,会进行分裂,分裂从RowKey的中间值进行,会出现的情况: (1)分裂后,由于timestamp始终递增,RowKey小的部分不会再插入数据;反之,RowKey大的部分会一直插入数据,这样下去会得到很多小的region。 (2)由于只往RowKey大的region插入数据,小的region得不到机会,降低了IO并行度。
2,设置RowKey为随机值的情形,对于经常取一段时间连续值的情形,会访问多个region进行取数据,会增加IO负载。
Hbase二级索引 Stratio/cassandra-lucene-index项目实现了lucene对cassandra的二级索引。 hbase只能按照rowkey查询,开源的项目有Phoenix可以使用sql查询hbase数据。 Hbase增加二级索引可以使用coprocessor,华为实现二级索引方案:http://my.oschina.net/u/923508/blog/413129 hbase里往column famlily中插入列的个数可以达百万级
二级索引最大的问题是数据一致性,hbase table中的数据value修改了,索引表的值也要相应的修改。
Coprocessor HBase在0.92之后引入了coprocessors,提供了一系列的钩子,让我们能够轻易实现访问控制和二级索引的特性。下面简单介绍下两种coprocessors,第一种是Observers,它实际类似于触发器,第二种是Endpoint,它类似与存储过程。 observers分为三种: RegionObserver:提供数据操作事件钩子; WALObserver:提供WAL(write ahead log)相关操作事件钩子; MasterObserver:提供DDL操作事件钩子。








www.htsjk.Com true http://www.htsjk.com/hbase/39567.html NewsArticle Hbase笔记, 官方网站: http://hbase.apache.org/ programming guide: http://hbase.apache.org/book.html#quickstartHBase 以列为单位聚合数据,基于“对于特定查询,不是所有列的值都是必须的”的假设。列式...
相关文章
    暂无相关文章
评论暂时关闭