hbase-写操作
Posted cnblog-ycc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase-写操作相关的知识,希望对你有一定的参考价值。
上一篇中学习hbase的client连接操作,这一篇文章中学习hbase的写操作。
regionServer结构:
首先学习一下regionServer的构成,从图中可以很清楚的看出,regionServer包含了Hlog,HRegion,MemStore,store,StoreFile,HFile
HRegion:是分布式存储的和负载均衡最小单元,通过表按行切分的来。开始一张表只有一个region,当数据不断的写入,region不断的变大,超过设置的阈值,region开始分裂成两个region,master会对这些region重新分配到不同的regionserver上。
hlog(wal):hbase的日志存储,hbase的数据首先写入到hlog中,hlog的数据是存储在hdfs上的,当机器出现宕机情况,可以通过hlog快速的恢复丢失的数据。
store:region有一个或者多个store,一个列簇建立一个store,多个列簇有多个store,每个store中包含一个Memstore和多个StoreFile
MemStore:MemStore为写时缓存,hbase的数据写入并不是直接写入到Hfile中,而是先写入到MemStore中,大小超过设置的阈值后flush到HFile中
StoreFile:MemStore数据写入到文件后就是StoreFile,底层为HFile
HFile:数据存储在hdfs上的文件
数据的写入流程:
- 数据首先写入到wal中
- 然后数据写入到MemStore中
- 当MemStore中的数据大小超过阈值,flush到HFile中
当机器出现宕机情况,因为wal和HFile中的数据存储在hdfs中,并不会出现数据丢失情况,数据丢失的是在MemStore中尚未flush到HFile的数据,可以从wal将这部分数据从新恢复
以上是关于hbase-写操作的主要内容,如果未能解决你的问题,请参考以下文章