一、问题复现
这个问题是我在学习传智播客《Spark项目实战》时遇到的,提交submit任务显示成功,但是查看hbase的时候,发现top10
没有创建成功,查看日志发现,表top10
已经存在,但是使用list
命令查不到该表.
错题日志如下所示:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.TableExistsException): top3
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.prepareCreate(CreateTableProcedure.java:301)
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:108)
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:58)
at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:119)
at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:452)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1066)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:855)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:808)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:75)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:494)
二、原因分析
在删除一个表之前,disable的时候不小心断开或其他因素导致disable没有成功,然后就直接drop掉了这张表,虽然表被删除掉了,但是zookeeper依然存在该表的信息,故而造成错误,list的时候也找不到。
三、解决方案
进入zookeeper安装文件夹bin下,
运行./zkCli.sh
,进入zookeeper客户端,登陆成功出现如下提示:
- 运行
ls /
查看根目录下的文件夹,目录如下所示:
- 进入 /hbase/table 文件夹,如果文件夹下边存在
top10
,删除,然后重启hbase,问题得以解决。(注:重启过程中可能会出现master: java.net.BindException: Address already in use master: at sun.nio.ch.Net.bind。。。。的错误,是因为zookeeper已经启动,可以先手动关闭zookeeper,然后再启动hbase)
- 使用命令
rmr /hbase/table/top10
删除表后,重启hbase即可
四、参考链接
原文链接:https://blog.csdn.net/weixin_45751589/article/details/105265817