向HBase添加日志信息(HBASE概述入门)
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会进行定期清理。
体育锻炼
- 斯诺克英锦赛历届冠军 斯诺克英锦赛历届冠军名
- 丘里奇网球即时排名 丘里奇网球即时排名登不进
- 东京奥运会排行榜 东京奥运会奖牌排行榜解析
- 许昕刘诗雯男双夺冠 许昕刘诗雯夺全运会混双金
- 法国世界杯冠军是哪年 法国世界杯冠军是谁
- 羽毛球女双世界排名 羽毛球女双世界排名2024
- 小学生必知冬奥会知识 小学生必知冬奥会知识是
- 世界斯诺克台球排名前十名 世界斯诺克台球排名
- 奥尼尔生涯十佳球 奥尼尔生涯最佳阵容
- 世界斯诺克中国锦标赛 世界斯诺克中国锦标赛冠
- 恒大欠了2万亿谁来还 恒大欠1.95万亿怎么欠的
- 北京冬奥会金牌榜 北京冬奥会金牌榜排名情况
- 奥运会举重:奥运会举重的历史
- 12强赛怎么晋级世界杯 12强赛怎么才能进世界杯
- 亚洲首次举办奥运会的时间是 亚洲首次举办奥运
- 奥运会乒乓球参赛名单 奥运会乒乓球参赛名单公