​hbase的api中HBaseAdmin中没有判断snapshot表是否存在的函数是吗?

没找到。 为什么我新建/重建一个快照后,hbase在/hbase/archive/下新建的文件夹及子文件等都是hdfs:hbase而不是hbase:hbase,之后就因为权限问题报日志错误,非常奇怪。我MR生成HFile时用的是hdfs用户,再把文件切换成hbase:hbase,最后LoadIncrementalHFiles,难道跟这个有关系

史晓江

赞同来自:

用的哪个用户?/hbase/archive 这个目录本身权限是什么?/hbase/archive本身应该是hbase:hbase,建立快照时用的是su -hbase -c"",生成HFile用的是hdfs,推过去前把HFile改为了hbase:hbase。嗯,确定下快照目录父目录的权限吧

张晓慧

赞同来自:

一定得确定目录属主都对,hdfs构造文件时,所属组是复用目录的。我就是纳闷上级/hbase/archive是hbase:hbase,hbase怎么会去创建一个hdfs:hbase的/hbase/archive/data的目录

史晓江

赞同来自:

用户名是从用户取的,用户组是从父目录取的,对于hdfs来说是这样的。

史晓江

赞同来自:

嗯,你可以看看某些作业的启动用户是不是不太对。作业的启动用户都是hdfs,也许是这个引起的吧。

封尘 - 如:80后IT男..

赞同来自:

嗯,或者父region的兄弟region中有引用文件?

张晓慧

赞同来自:

引用文件是指region下的列族文件夹下的uid.uid文件是吗?有这样的文件

史晓江

赞同来自:

有文件被引用就不会被删。

张晓慧

赞同来自:

major都试过了,祖父region还活着。现在的数据都入了孙子region了,如果我手动删除uid.uid会出什么情况?孙子的region中没有uid.uid,是否意味这一级的split已经完成?

史晓江

赞同来自:

保险起见你可以把祖父region里的文件拷贝出来。hbck repair,然后再bulkload。哦,对,父region中的非引用文件也得拷贝

张晓慧

赞同来自:

用hbase -repair修复后,观察了几天,恢复正常了。/hbase/archive/data/下出现hdfs:hbase属主文件的原因是由于我用hdfs用户身份运行读取快照表的程序,转换为hbase用户,问题解决了。

要回复问题请先登录注册