HBase

一、

1. HBase - Hadoop Database是一个高可靠性(数据存在HDFS上,HDFS本身高可靠;依赖zookeeper,服务不会停)、高性能(基于Row Key,大数据量情况下速度快)、面向列(一个个单元格)、可伸缩(集群动态扩展节点)、实时读写的分布式数据库。

2. 利用HDFS作为文件存储系统、MapReduce处理海量数据、利用Zookeeper提供分布式协同服务。

3. 与常用的数据库存储结构化数据不一样,HBase主要用来存储非结构化的喝半结构化的松散的数据。

4. Row Key 为主键(只能存储64k字节数据,越短越好),对应有多个列族Column Family,一个列族下有多个列名。一次数据操作对应一个时间戳,HBase会自动生成时间戳(推荐)、也可人为生成。

5. 列族(CF)需先在建表时声明(权限控制、存储以及调优都在列族层面,列族最好控制在3个以内--列族越多性能越差),列名需以列族作为前缀,新的列可以随后按需动态添加。

6. HLog文件是一个普通的hadoop序列文件--HBase数据恢复的日志文件。

7. HBase每一个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本按时间倒序排序,最新的版本排在最前面。(时间戳的类型为64位整型)

8. 单元格的内容是未解析的字节数组。由{row key,column(=<family>+<qualifier>),version}(主键+列族+列名+版本号--时间戳) 确定目标单元,cell中的数据是没有类型的,全部是字节码的形式存储。

二、HBase体系架构

HBase

Client请求到zookeeper(保证集群内只有一个HMaster),zookeeper转给HMaster,HMaster向RegionServer分配Region(一个Region就是一张表的部分或者全部数据,一个Region内有一个HLog文件、可以有几个Store。一个Store对应一个列族,一个Store内有一个MemStore。数据先写入MemStore,当存满之后。就写入一个文件内。HBase叫StoreFile、Hadoop叫HFile,指的是同一个文件),数据存储到HDFS上。

Zookeeper作用:

1. 保证集群中只有一个HMaster。

2. 储存所有region的位置信息。

3. 监控RegionServer的上线、下线,并通知给HMaster。

4. 储存HBase的schema和table元数据--所以说HMaster上不储存任何元数据。

Master作用:

1. 为RegionServer分配region。

2. HMaster起到一个负载均衡的作用,发现失效的RegionServer后将重新分配其上的region。

3. 管理用户对table的增删改操作。

RegionServer作用:

1. 维护region,处理对region的IO请求。

2. 切分在运行过程中不断增大的region。

三、

Put-插入数据  Get-查询数据

HBase存储的数据格式为key-value形式,业务信息存储在Key内-- K: Row Key/列族:列名/时间戳/方法(Put...)/长度/mvcc标识  V: 值。

搭建HBase集群之前,需要先确保hadoop集群,zookeeper集群运行正常。

Java操作HBase时需指定编码格式,Hbase有自己的默认编码。(HBase的版本1.0.0之前与之后的API有一定区别,需注意)

Scan && Filter

HBase不支持sql,所以可以安装phoenix扩展sql功能。Squirrel SQL Client

转载于:https://www.cnblogs.com/tianhb/p/6434876.html

一、

1. HBase - Hadoop Database是一个高可靠性(数据存在HDFS上,HDFS本身高可靠;依赖zookeeper,服务不会停)、高性能(基于Row Key,大数据量情况下速度快)、面向列(一个个单元格)、可伸缩(集群动态扩展节点)、实时读写的分布式数据库。

2. 利用HDFS作为文件存储系统、MapReduce处理海量数据、利用Zookeeper提供分布式协同服务。

3. 与常用的数据库存储结构化数据不一样,HBase主要用来存储非结构化的喝半结构化的松散的数据。

4. Row Key 为主键(只能存储64k字节数据,越短越好),对应有多个列族Column Family,一个列族下有多个列名。一次数据操作对应一个时间戳,HBase会自动生成时间戳(推荐)、也可人为生成。

5. 列族(CF)需先在建表时声明(权限控制、存储以及调优都在列族层面,列族最好控制在3个以内--列族越多性能越差),列名需以列族作为前缀,新的列可以随后按需动态添加。

6. HLog文件是一个普通的hadoop序列文件--HBase数据恢复的日志文件。

7. HBase每一个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本按时间倒序排序,最新的版本排在最前面。(时间戳的类型为64位整型)

8. 单元格的内容是未解析的字节数组。由{row key,column(=<family>+<qualifier>),version}(主键+列族+列名+版本号--时间戳) 确定目标单元,cell中的数据是没有类型的,全部是字节码的形式存储。

二、HBase体系架构

HBase

Client请求到zookeeper(保证集群内只有一个HMaster),zookeeper转给HMaster,HMaster向RegionServer分配Region(一个Region就是一张表的部分或者全部数据,一个Region内有一个HLog文件、可以有几个Store。一个Store对应一个列族,一个Store内有一个MemStore。数据先写入MemStore,当存满之后。就写入一个文件内。HBase叫StoreFile、Hadoop叫HFile,指的是同一个文件),数据存储到HDFS上。

Zookeeper作用:

1. 保证集群中只有一个HMaster。

2. 储存所有region的位置信息。

3. 监控RegionServer的上线、下线,并通知给HMaster。

4. 储存HBase的schema和table元数据--所以说HMaster上不储存任何元数据。

Master作用:

1. 为RegionServer分配region。

2. HMaster起到一个负载均衡的作用,发现失效的RegionServer后将重新分配其上的region。

3. 管理用户对table的增删改操作。

RegionServer作用:

1. 维护region,处理对region的IO请求。

2. 切分在运行过程中不断增大的region。

三、

Put-插入数据  Get-查询数据

HBase存储的数据格式为key-value形式,业务信息存储在Key内-- K: Row Key/列族:列名/时间戳/方法(Put...)/长度/mvcc标识  V: 值。

搭建HBase集群之前,需要先确保hadoop集群,zookeeper集群运行正常。

Java操作HBase时需指定编码格式,Hbase有自己的默认编码。(HBase的版本1.0.0之前与之后的API有一定区别,需注意)

Scan && Filter

HBase不支持sql,所以可以安装phoenix扩展sql功能。Squirrel SQL Client