hbase使用记录

1、hbase结构很简单,元数据是KeyValue,组成是row,family,column,value,timestamp。

      row 主键,唯一性,也是分片的依据。

      family 列簇,一个表设计时最好不要超过3个列簇。

      column 列,一个列簇有n个列,可以随意加

      value hbase是散列形式,row-family-column确定一个列的值value

      timestamp 时间戳

2、创建表时如果指定maxVersions为1的话,java api 中获取的KeyValue[]只有一个值。

3、从hbase读数据建solr索引时,可以通过获取HRegionInfo,获取整份数据的切片,比如A表分成20个片,a1,a2,a3...每个片有一个startKey,endKey,可以实现分布式创建索             引。

4、客户端只有2中方式获取hbase数据,get和scan,get获取单条数据,scan表示扫描。与mongo一样,scan可以扫描整个表的数据,但是是一条“易断”连接:通常我们获取数         据之后,有自己的处理逻辑,如果默认间隔60s你不next()数据,连接会被断开。

      创建连接时可以指定连接失效时间:conf.setLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, 600000);

5、hadoop的mapreduce程序可以通过hfile操作hbase的原始数据,不过与客户端连接相比,中间多了一层MemStore,所有在某个时刻,会存在数据不一致的地方。

6、接5中间的MemStore在一定量的时候才会put到hdfs,所以如果你的mapreduce程序中需要dump hbase表数据的时候,如果表为空,FileInputFormat.setInputPaths(inputPaths)会报错;解决方法暂时可以:手动put几条数据入hbase,然后disable table再enable table,数据就进入hdfs。

7、hbase.client.keyvalue.maxsize默认10M,可以通过配置改大,但我觉得再大就要修改设计了。

      暂时想到这么多...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值