HBase入门

  

一、创建表:
hbase(主要):005:0>创建‘用户’,‘信息’
其中,信息是用户表的一个列族,HBase中的表必须至少有一个列族。
HBase创建表时没提到任何列或者数据类型。除了列族名字,不需要什么。这是HBase被称为“无模式”数据库的原因。

HBase(主要):006:0>列表
hbase(主要):007:0>描述“用户”
DESCRIPTION ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ENABLED ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,“用户”,{NAME=比;“信息”,DATA_BLOCK_ENCODING=比;“没有”,BLOOMFILTER=比;“没有”,REPL true ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
, ICATION_SCOPE=比;“0”,版本=比;' 3 ',压缩=比;“没有”,MIN_VERSIONS=比;T  ' 0 ',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
, TL=比;“2147483647”,KEEP_DELETED_CELLS=比;“假”,BLOCKSIZE=比;‘65536’,IN_MEMORY=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,在“假”,ENCODE_ON_DISK=比;“真”,BLOCKCACHE=比;“真正的”},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1行(s)在0.0580秒内
显示表的名字和列族的列表

二,建立连接
1。Htable对象用来和一张Hbase表来交流。
创建一张表实例是个开销很大的操作,需要占用网络资源。
,,,配置myconf=新配置();
,,//HTableInterface用户=new HTable (myconf,“用户”);,,//创建一张表实例。开销比较大。

,,
,, HConnection hc=HConnectionManager.getConnection (myconf);
,, HTableInterface用户=hc.getTable(“用户”),,,,,,,,,//使用连接池可以获得的。
,, users.close ();
,
2。数据操作:
HBase表的行有唯一标识,叫做行键rowkey。
有5个基本命令来访问HBase,得到(读),把(写)、删除(删除),扫描(扫描),增量(递增)。
HBase中所有数据都是作为原始数据使用“字节数组”的形式存储的,行键也如此。

提交数据:
使用把对象存储要插入/提交的数据。
HBase中使用坐标来定位表中的数据。行键是第一个坐标,下一个是列族,再下一个坐标是列限定符(列预选赛)。列限定符分别是姓名、电子邮件和密码。
把p=新(Bytes.toBytes (“TheRealMT”)),
p.add (Bytes.toBytes(“信息”),Bytes.toBytes(“名字”),字节。toBytes(“马克·吐温”));
p.add (Bytes.toBytes(“信息”),Bytes.toBytes(“电子邮件”),Bytes.toBytes (mt@google.com));
p.add (Bytes.toBytes(“信息”),Bytes.toBytes(“密码”),Bytes.toBytes (“lamborgini”)),
,
修改数据:
修改数据与插入数据的方式,是一样的,也是使用把对象。

工作机制:HBase写路径
默认情况下,执行写入时会写到2个地方:预写式日志(写前日志,也成HLog)和MemStore.MemStore是内存里的写入缓冲区。HFile是HBase使用的底层存储格式只
如果HBase服务器宕机,没有从MemStore里刷写到HFile的数据将可以通过细胞膜来回复。

读数据:
创建一个拿命令实例.Result r=users.get (g),
HBase在读操作上使用了LRU(最近最少使用算法)缓存技术。也叫作BlockCache,和MemStore在一个JVM堆里。

删除数据:
删除命令并不立即删除数据,也就是说不是物理删除,只是打上了删除标记.HFile文件是不能该表的,直到执行一次大合并,这些墓碑记录才会被处理,被删除记录占用的空间才释放。
合并分为小合并和大合并。小合并是将多个小HFile合并生成一个大HFile,大合并同时处理一个列族的所有HFile

有时间版本的数据:
HBase出了无模式外,还是有时间版本的数据库。

HBase数据模型:
表:
行:
列族:
列限定符:
单元:行键,列族和列限定符一起确定一个单元。
时间版本:每个单元值都有一个时间版本。

下面代码中,涉及到了HBase表中数据,增加,修改,删除,读取数据的方法,TablesControl。java

HBase入门