HBase企业应用开发工作中自己总结的Hbase笔记,非常全面!

Posted 大数据研习社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase企业应用开发工作中自己总结的Hbase笔记,非常全面!相关的知识,希望对你有一定的参考价值。

工作中自己总结的Hbase笔记,非常全面!有了它,再也不用查其他Hbase文档了。

Hbase笔记领取办法:关注“大数据研习社”,微信后台回复“hbase笔记”,即可获得下载链接。

说明:书籍是完整的哦,并非网上流传的试读版,本电子书仅供学习交流之用,请支持正版。

《Hbase学习笔记》

目录

一、HBase原理和结构说明

二、HBase的表结构

1) Row Key

2) 列族 column family

3) 单元 Cell

4) 时间戳 timestamp

三、HBASe单机配置

1) 下载

2) 使用root身份登录目标服务器系统(Suse10Linux)

3) 创建hadoop用户,$useraddhadoop可以用$passwdhadoop修改hadoop用户的登录密码.

4) 解压hadoop

5) 配置hbase-site.xml文件

6) 启动和关闭

7) 说明

四、Hbase配置解释

1) 修改linux 系统参数

2) JVM 配置

3) 配置HBase运行参数

4) HBase中log4j的日志

五、HBase shell的基本用法

1) 建立一个表和列族

2) 按设计的表结构插入值

3) 根据键值查询数据

4) 扫描所有数据

5) 删除指定数据

6) 修改表结构

7) 统计行数

8) disable 和 enable 操作

9) 表的删除

10) hbase shell脚本

六、JAVA操作HBASE方面

1) 连接原理和配置

2) 创建表

3) 删除表

4) 查询数据

5) 插入数据

6) 删除数据

7) 切分表


一、HBase原理和结构说明

HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》

HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。

二、HBase的表结构

HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族/列簇(column family)。

实际情况为:

如上图所示,key1,key2,key3是三条记录的唯一的row key值,column-family1,column-family2,column-family3是三个列族,每个列族下又包括几列。比如column-family1这个列族下包括两列,名字是column1和column2,t1:abc,t2:gdxdf是由rowkey1和column-family1-column1唯一确定的一个单元cell。这个cell中有两个数据,abc和gdxdf。两个值的时间戳不一样,分别是t1,t2, hbase会返回最新时间的值给请求者。

这些名词的具体含义如下:

1) Row Key

与nosql数据库们一样,row key是用来检索记录的主键。访问hbase table中的行,只有三种方式:

(1.1) 通过单个row key访问

(1.2) 通过row key的range

(1.3) 全表扫描

Rowkey行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。

存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)

注意:

字典序对int排序的结果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行键必须用0作左填充。

行的一次读写是原子操作 (不论一次读写多少列)。这个设计决策能够使用户很容易的理解程序在对同一个行进行并发更新操作时的行为。

2) 列族 column family

hbase表中的每个列,都归属与某个列族。列族是表的chema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如courses:history , courses:math 都属于courses 这个列族。

访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。

3) 单元 Cell

HBase中通过row和columns确定的为一个存贮单元称为cell。由{row key, column( =<family> + <label>), version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。

4) 时间戳 timestamp

每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,hbase提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

.......

后续更多精彩内容请下载笔记后阅读。

Hbase笔记领取办法:关注“大数据研习社”,微信后台回复“hbase笔记”,即可获得下载链接。


说明:书籍是完整的哦,并非网上流传的试读版,本电子书仅供学习交流之用,请支持正版。

如果你喜欢这些资料,那就分享给更多的人吧,让更多的人得到帮助!
美德智慧 

关注大数据趋势和技术应用,

分享有价值的技术干货。

每周一份大数据技术资料免费领取。



大数据研习社
大数据技术爱好者最喜爱的学习社区

以上是关于HBase企业应用开发工作中自己总结的Hbase笔记,非常全面!的主要内容,如果未能解决你的问题,请参考以下文章

hbase实战 hbase权威指南哪本好书

HBase社区 | 2018 HBase MeetUp年终总结

HBase设计规范(转载)

HBase性能调优总结

HBase跨版本数据迁移总结

安全资讯Hbase万亿级存储性能优化总结