向HBase添加日志信息(HBASE概述入门)

体育百科 2022-11-18 07:17www.1689878.com体育运动

HBASE是基于HDFS(HBASE表的数据可以存储在本地,也可以存储在HDFS上,企业中一般都是存储在HDFS上,因为高可靠、有备份)之上的、分布式的(分而治之,一个任务由多台服务器协同处理)、面向列(面向行,指的是数据库中的数据以行的方式存储,一行的数据存储为一个部分;而面向列,指的是数据库中的数据以列的方式存储,一列的数据存储为一个部分。在企业中的查询一般不会全表扫描,只会查询其中的几个字段,如果数据量很大,列查询的效率会提高)的开源数据库。

HBASE的优势

高效1、HBASE会将随机读写转换成顺序读写,适合高并发写入。传统数据库对顺序读写效率较低。

2、均衡效果好,读写性能和机器数量保持线性相关。

3、使用列式存储,所以没有数据的列不占用空间。

分布式特性1、基于HDFS,有很好的容错性,因为HDFS有备份策略,均衡策略是基于HDFS的DataNode。HBASE使用zookeeper进行集群的协同工作。

2、一致性所有的节点在同一个时间内,得到的数据是相同的。可用性每个请求不管是成功还是失败,都能在一定时间内得到返回。分区容忍性集群中如果某台服务器出现数据丢失的情况,它不会影响整个集群的工作状态。

3、大数据存储,因为数据存储在HDFS上。

4、易扩展HBASE集群支持节点的增加和卸载,所以扩展性很强。

HBASE表的特点

1、大表可以有数十亿行,上百万列。

2、面向列面向列(族)的存储和访问权限,列(族)独立索引。

3、稀疏对于为空(null)的列,并不占用存储空间。表可以设计的非常稀疏。

4、数据类型单一HBASE存储的数据类型都是字符串(string)

5、无模式每行都有一个可排序的主键和任意个列,列可以动态增加,同一张表可以有不同的行,也可以有不同的列。

HBASE与关系型数据库的区别

1、数据类型HBASE中所有数据类型都是string。RDBMS类型有多种。

2、数据操作HBASE只有增删改查,没有表关联。

3、存储模式HBASE基于列式存储,RDBMS基于行式存储。

4、应用场景HBASE适合存储海量数据,HBASE表自带索引,查询效率高。

主键(row key)

1、类似MySQL的主键,用来查询数据。

2、Hasee中查询数据的方式有三种

A、指定单个row key的值进行查询,只能查询出一条数据

B、制定row key的range进行查询,企业中用的最多,可以查询出多条记录。

C、全表扫描。

3、主键可以为任意字符串,最大长度为64kb,按照字典顺序进行存储,HBASE中存储格式为字节数组。

列族(column family)

1、列族在创建表是必须声明,如果忘记声明,则只能通过修改表增加列族。一个列族可以包含多个列,一个列只能属于一个列族。列中的数据都是以二进制的方式进行存储,列族没有数据类型。

2、列族就是一些列的集合。

3、一个列族的所有成员都有相同的前缀,比如列course:history,course:math 都是列族 course的成员,冒号是列族的分隔符,用来区分前缀和列名。

时间戳和存储单元(timestamp and cell)

1、HBASE中存储单元由row和column组成,每个存储单元都保存这同一份数据的多个版本,因为HBASE中,都是通过插入一条主键相同的数据来进行修改的,那么在cell中会存储两条数据,一条旧数据一条新数据。

2、写入数据时,时间戳可以由HBASE自动赋值(当前系统时间精确到毫秒),也可以手动指定时间戳。

3、在每个cell中,不同版本的数据都是按照时间倒叙进行存储的。

4、HBASE中,cell由{row, column, version}组成。




HBASE中,所有表的数据都是存储在region中,一张表可以有一个region或多个region,region可以理解为一种特殊格式的文件。每个region由region server进行管理,region server负责维护表和region之间的关系。



每个region包括memstor和storefile,memstor主要存储在内存中,storefile主要存储在本地磁盘中。在region中,开始只有memstor,没有storefile。当memstor达到128M时,HBASE就会生成一个storefile文件。

HBASE存储细节

1、每一个列族都会存储在HDFS的一个单独的文件夹。所以推荐实际应用中,只设计一个列族,因为多个列族中,涉及到跨列族查询时,需要读多个文件夹,效率比较低。

2、每一个列族都会存储一个key和它的版本号。

3、空值是不会被存储的。

HBASE存储目录

1、/hbase/.tmp文件HBASE的临时目录,当对表进行删除或创建的时候,HBASE会将表移动到该目录,然后进行操作。

2、/hbase/WALs全称write ahead log,预写日志文件。在处理数据插入和删除的过程中用来记录操作内容的一种日志。向HBASE写入数据

A、在HDFS中存储一份log日志。

B、然后在region中存储数据。Region中存储的数据分成两部分,存储在内存中,内存中数据达到一定大小后会spill到磁盘、文件、HDFS文件中,

C、公式内存0.4/60

3、/hbase/data目录核心目录,存储HBASE表的数据。一般由两个子目录/hbase/data/default, 用户创建表时,没有指定命名空间(namespace)时,表默认创建在本目录下;/hbase/data/hbase, 系统内部创建的表,包含两个表,meta表,存储region的详细信息;namespace表,存储命名空间。

4、/hbase/hbase.id目录存储集群的唯一的cluster id

5、/hbase/version目录集群的版本号,数据经过加密

6、/hbase/oldWALs目录在HBASE旧版本中是oldlogs。当/hbase/WALs目录中的logs没有用之后,会将这些日志移动到该目录下,HMaster会进行定期清理。

Copyright © 2016-2025 www.1689878.com 体育知识网 版权所有 Power by

足球|篮球|NBA|奥运|网球|高尔夫|田径|游泳|排球|赛车|比赛|亚运会