hbasewalobserver的简单介绍

HBase存储架构HBase采用了类似Google Bigtable的数据模型,即一个稀疏的、分布式的、持久化的多维映射表,每个表都由行键、列族、列限定符和时间戳组成 。
/hbase/.archiveHBase 在做 Split或者 compact 操作完成之后 , 会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理 。
hbase的核心数据结构为LSM树 。LSM树分为内存部分和磁盘部分 。内存部分是一个维护有序数据集合的数据结构 。
HBase系统架构如下所示,包括客户端、Zookeeper服务器、Master主服务器、Region服务器 。一般而言 , HBase会采用HDFS作为底层数据存储 。
其中Hbase是基于HDFS , 而oceanbase是自己内部实现的分布式文件系统 , 在此也可以说分布式数据库以分布式文件系统做基础存储 。
hbase怎么做到顺序写入1、内存部分是一个维护有序数据集合的数据结构 。一般来讲 , 内存数据结构可以选择平衡二叉树、红黑树、跳跃表(SkipList)等维护有序集的数据结构 , 由于考虑并发性能,HBase选择了表现更优秀的跳跃表 。
2、数据查询模式已经确定,且不易改变 , 就是说hbase使用在某种种特定的情况下,且不能变动 。告诉插入,大量读龋因为分布式系统对大量数据的存取更具优势 。尽量少的有数据修改 。
3、和读相比 , HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件 。
4、Region执行了MemStore的Flush操作,再经过JVM GC之后就会出现零散的内存碎片现象 , 而进一步数据大量写入 , 就会触发Full-GC 。为了解决因为内存碎片造成的Full-GC的现象,RegionServer引入了MSLAB(HBASE-3455) 。
5、Hbase的Table中的所有行都按照row key的字典序排列 。Table 在行的方向上分割为多个Region 。
HBASE之创建表、插入值、表结构查看1、对表的创建、删除、显示以及修改等,可以用HBaseAdmin , 一旦创建了表,那么可以通过HTable的实例来访问表 , 每次可以往表里增加数据 。
2、创建表 使用HBaseShell或HBaseAPI可以创建表,需要指定表的名称和列族 。例如,创建一个名为student的表 , 包含一个列族info 。插入数据 使用Put命令可以向表中插入数据 , 需要指定行键、列族、列和值 。
【hbasewalobserver的简单介绍】3、全表扫描(scan)RowKey行键 (RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为 10-100bytes),在HBASE内部 , RowKey保存为字节数组 。存储时,数据按照RowKey的字典序(byte order)排序存储 。
4、两种方式:一,建立一个hive和hbase公用的表 , 这样可以使用hive操作hbase的表,但是插入数据较慢,不建议这样做 。二,手写mapreduce , 把hive里面的数据转换为hfile,然后倒入 。
HBase宕机恢复-SplitWAL在0版本 HBase 实现了新的分布式事务框架 Procedure V2(HBASE-12439),使用 HLog 存储这种单机事务(DDL、Split、Move 等操作)的中间状态 。
发现有张HBase表丢失了一半数据,然后在HBase Master UI上发现Region的数量少了一半,但是随后进入HDFS目录中查看,其实Region数据是存在的,那么原因就确定了,是META表中数据丢失 , 想要恢复数据,需要对META表进行数据修复 。
HBase 运行在 HDFS 上,HDFS 的多副本存储可以让它在岀现故障时自动恢复,同时 HBase 内部也提供 WAL 和 Replication 机制 。

推荐阅读