hbase如何 修改和删除数据

看了一些资料,都说HBase的数据文件在HDFS系统中,因此本质上很难修改和删除数据。在HBase中,修改和删除数据都是增加1个新版本的数据(时间戳为最新),旧版本的数据并没有发生变化。hbase 介绍行健 都是这样说的,hbase的行健按字典排序存储。问题就在这里,假如row1 已经存储在一个hfile里面,已经落盘很久了。现在都已经存储了很多数据,都已经落盘了很多hfile数据。 当前如果有一个row1 的某个列更新。或者删除。首先放在MemStore,然后MemStore到达阈值落盘。这个时候 应该是新生成一个小的hfile文件。应该不会去更新hfile的老文件。因为hadoop不能更改文件。那这个时候。这个新的hfie里面会有row1,以前的hfile里面也有row1. 这样的情况hbase如何处理。 行健这个时候也不是按字典排序了。

阅读 11k
2 个回答

hbase 介绍行健 都是这样说的,hbase的行健按字典排序存储

据说是不对的,只有同一个hfile才可以保证按字典排序存储

删除是修改数据的key标记,更新则相当于创建一个新的版本,如果都在MemStore的话,则向下合并的时候会剔除已删除数据,如果在HDFS中我理解的是大合并的时候会重写这个文件,进行数据剔除。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进