Hbase的基本使用及基本demo
注意:0992模块是HBase0.992版本的写法,2120是HBase2.12版本的写法。
$HBASE_HOME/bin/hbase shell
报错:Error: Could not find or load main class org.jruby.Main
原因:
参考资料:https://stackoverflow.com/questions/25479378/could-not-find-or-load-main-class-org-jruby-main-when-run-hbase-shell
HBase单机版搭建参考:
https://www.cnblogs.com/xuwujing/p/8017116.html
https://blog.csdn.net/qazwsxpcm/article/details/78637874
写入到HBase的方式有:
- 调用HBase API,使用Table.put方式单条写入
- MapReduce方式,使用TableOutputFormat作为输出
- Bulk Load方式,先将要推入的数据按照格式持久化成HFile文件,然后使用HBase对该文件进行load
https://segmentfault.com/a/1190000009762041
参考资料:https://bbs.huaweicloud.com/blogs/7c0b2684201d11e7b8317ca23e93a891 Mongodb读性能优于写性能,比较像Mysql;HBase写性能优于读性能。
如果有几亿或者几十亿条记录要出入HBase,那么HBase就是一个正确的选择;否则如果你仅有几百万条甚至更少的数据,那么HBase当然不是正确的选择,这种情况下应该选择传统的关系型数据库。
参考资料:http://www.h3c.com/cn/d_201511/901094_30008_0.htm
关系型数据库是小型前台报表库,存放大数据加工好的数据,前台展示用。DB2则是历史原因,用于集团接口数据库,后期将逐步演进为分布式架构,HBase主要用于高并发查询,如日志查询,它的数据来源于ETL加工处理好的明细数据。
rowkey设计:
常用的rowkey设计为:salt (1 byte) + attr1_id (4 bytes) + timestamp (4 bytes) + attr2_id (4 bytes)
https://blog.csdn.net/chengyuqiang/article/details/79134549
rowkey避免热点:
https://my.oschina.net/lanzp/blog/477732
HBase二级索引:
https://blog.csdn.net/WYpersist/article/details/79830811
https://www.jianshu.com/p/0ccd187910e5
https://segmentfault.com/a/1190000016311988
https://www.cnblogs.com/haoxinyue/p/6832964.html
一般包括软件层面优化和系统层面优化: