hbase的表无法删除(drop),提示:The procedure 28 is still running
1、一张表被客户端的hbase api操作时卡住了
2、disable成功,drop非常久,提示:The procedure 28 is still running
3、那么这个procedure怎么查?如何不重启集群的情况下删除这个表?
hbase 版本 1.1.2
2、disable成功,drop非常久,提示:The procedure 28 is still running
3、那么这个procedure怎么查?如何不重启集群的情况下删除这个表?
hbase 版本 1.1.2
没有找到相关结果
已邀请:
4 个回复
HBaseAiHaoZhe - 90后T男
赞同来自: 过往记忆 、point
hbase version:HBase 1.2.0-cdh5.13.3
运行任务:bulkload
下面所有的路径都是在hdfs上前几天我也遇到过这样的问题:disable 'tablename' 成功;drop 'tablename',卡住,运行一段时间后,然后提示:The procedure 452 is still running;
后经过测试发现:
1,在hbase的命令行里,建表,插入数据,禁用表,删除表都是成功的;
2,只有经过bulkload的导入的数据,在drop 'tablename',时会提示The procedure 【号】 is still running;
后来又从网上找资料,测试等等,终于发现原因
最主要的原因是:【权限问题】
1,任务运行统一在普通用户目录下,比如说edq
2,从关系型数据库导出数据到hdfs中去,文件的权限是:
文件权限 所属用户 所属组
-rw-r--r-- edq hive
3,bulkload,其实有两步:
1)将源文件生成hfile文件,文件权限和上面一样:
文件权限 所属用户 所属组
-rw-r--r-- edq hive
2)将hfile文件load进hbase中去,文件权限和上面一样:
文件权限 所属用户 所属组
-rw-r--r-- edq hive
4,想必各位看官,有点明白了,我接着说,那我们看看hdfs上hbase中【/hbase/data/default/tablename/.../...】的文件权限。
hbase中的文件权限是:
文件权限 所属用户 所属组
-rw-r--r-- hbase hbase
hbase中的文件所属用户统一为hbase用户
5,当我们想要drop删除hbase 表的时候,
表的hfile文件会从/hbase/data/default/tablename/../..移到/hbase/.tmp/data/default/tablename/...中,此时,当hbase想要删除
/hbase/.tmp/data/default/tablename/.. 表时,发现没有权限,为啥,因为
我的hfile文件权限为:
文件权限 所属用户 所属组
-rw-r--r-- edq hive
所属者是edq,其他人只有r--,read权限,所以hbase用户无法删除该文件,如何验证,当你重启hbase时,会启动失败,因为,会报权限问题,无法删除临时目录下的文件:/hbase/.tmp/data/default/tablename/..
6,该怎么做?
进行删除操作之前赋予权限,我的是在bulkload第二步之前,进行赋予权限,将文件other用户添加为w权限,hbase即可删除:
hdfs dfs -chmod -R o+w /hfilepath
7,希望对遇到此问题的朋友有所帮助
过往记忆
赞同来自:
point - 90后程序猿
赞同来自:
Imyerfazer
赞同来自: