关于HBase ./tmp目录问题请教

想请教一下,HBase为什么使用./tmp临时文件做一些操作,比如
1.当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作。
2.在合并Hfile的时候,分别读出待合并hfile文件的KV,并顺序写到位于./tmp目录下的临时文件中,然后再将临时文件移动到对应region的数据目录
想不明白这样做的原因是什么?希望指点,谢谢!
已邀请:

libis - HBase爱好者

赞同来自: Figo

1. 避免对真实数据的污染,如果直接把这些文件生成到数据目录下,假如写了一半集群重启了,这些数据是不是会被加载到系统,如果数据有问题系统都起不起来。
2. 将临时文件先写到tmp目录下,如果成功了再移动到数据目录下,可以保证数据目录下的数据都是正确的。

要回复问题请先登录注册