最近在学习 HBase 的一些东西,发现了一些奇怪的现象,我的 HBase 下的表建好后,重启 linux,再启动 HBase 相关服务后,奇怪的事情发生了。 重启之前我建了一张有数个列族的blogtable表,现在我用list命令查看,发现表还在的。但是当我scan ‘blogtable’的
最近在学习 HBase 的一些东西,发现了一些奇怪的现象,我的 HBase 下的表建好后,重启 linux,再启动 HBase 相关服务后,奇怪的事情发生了。
重启之前我建了一张有数个列族的blogtable表,现在我用list命令查看,发现表还在的。但是当我scan ‘blogtable’的时候发现提示说没有这个表。。。
实际上 hbase 中是有一个 hbase.rootdir 变量的。默认
hbase.rootdir 是指向
/tmp/hbase-${user.name} ,也就说你会在重启后丢失数据(重启的时候操作系统会清理
/tmp目录)则数据会丢失。但是我在配置
hbase 的时候明明有配置它,按理说数据不应该丢失。实际上嘛,数据好像也不是完全没有,因为 list 命令还可以看到 blogtable 存在过的痕迹。
综上所述我得出了结论,很可能是 hbase 在写入数据的时候出现问题,而既然能有一部分写入了,很可能是另一部分文件无法写入,换句话说就是权限问题。马上查看了我设置的数据文件夹权限,果然部分不可写入。。。赶紧改了权限,果真是,只要权限设好,便是晴天。