在做HBase二级索引实验时,使用了HBase的协处理器,在插入数据的时候,由于协处理器抛出了异常,导致HRegionServer挂了,重启之后,使用jps查看,马上又消失了,查询HMaster和HRegionServer的日志如下:
java.lang.RuntimeException: HRegionServer Aborted
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:68)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2652)
在添加协处理之后出现该异常,所以应该是主表在添加协处理器时导致集群异常,因为集群异常,所以进入hbase shell之后不能通过命令删除表,只能强制删除,方式如下:
(1)删除zookeeper中的数据:
进入/usr/local/zookeeper-3.4.6/bin/ 目录运行 ./zkCli.sh进入客户端执行:rmr /hbase/table/storage
(2)删除HDFS目录
hadoop fs -rmr /hbase/data/default/storage
(3)重启HBase集群
(4)进入HBase shell
(5)disable 'storage',然后drop 'storage',这一步主要是删除meta表中的数据。
这样HBase集群就能使用了。
- 修改Java代码后,上传到HDFS的jar包文件必须和之前不一样,否则就算卸载掉原有的coprocessor再重新安装也不能生效,两种解决方式:一个是修改jar包的名称,也就是每次打的jar包需要不一样;另一个就是修改协处理器所在类的名称,然后打jar包,这时jar包名称可以与上次一样。