HBase WAL预写日志

HBase的region服务器会将数据保存到内存中,直到有足够多的数据才会将其刷写到硬盘中,这样可以避免创建很多的小文件。存储在内存中的数据具有不稳定性因素,因此如果服务器断电了那么内存中的数据就会丢失。
HBase中使用预写日志(WAL)的方式来解决这一问题:每次更新都会写入日志,只有写入成功才会通知客户端操作成功,然后服务器可以按需自由地批量处理或聚合内存中的数据。
下图展示WAL是怎样和HBase的架构结合在一起的,

这里写图片描述

从上图可以看出,WAL被同一个region服务器的所有region共享,所以对于每一次修改它就像一个日志中心一样。
整个处理过程如下:
1 客户端启动一个操作来修改数据,如put(),delet()等。
2 每一个修改被封装到一个KeyValue对象实例,并通过RPC调用发送出来。
3 上述调用成批地发送给含有匹配region的HRegionServer。
4 数据先被写入到WAL,然后被放放到实际拥有记录的存储文件的MemStore中。
5 当MemStore达到一定的大小或经历一个特定时间之后,数据会异步地连续写入到文件系统中。

由于实际的日志存储在HDFS上,所以即使在服务器完全崩溃的情况下,WAL也能保证数据不会丢失。其他服务器可以打开日志文件然后回放这些修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值