在用phoenix创建Hbase表时,有时会提示创建失败,发现Hbase中又已创建成功,

但这些表在进行enabledisabledrop都无效,也无法删除:

hbase(main)::> enable 'TERMINAL_DETAIL_DATA'
##如下异常:
ERROR: org.apache.hadoop.hbase.TableNotDisabledException: TERMINAL_DETAIL_DATA
at org.apache.hadoop.hbase.master.handler.EnableTableHandler.prepare(EnableTableHandler.java:)
at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:)
at org.apache.hadoop.hbase.master.MasterRpcServices.enableTable(MasterRpcServices.java:)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$.callBlockingMethod(MasterProtos.java:)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:)
at org.apache.hadoop.hbase.ipc.RpcExecutor$.run(RpcExecutor.java:)
at java.lang.Thread.run(Thread.java:)

网上搜了一堆资料,找到以下解决办法进行处理:

  • 删除ZK中的数据
ls /hbase/table
rmr /hbase/table/TERMINAL_ORDER_DATA
  • 删除HDFS上的数据
hadoop fs -ls /hbase/data/default/TERMINAL_ORDER_DATA
hadoop fs -rm -r /hbase/data/default/TERMINAL_ORDER_DATA
  • 删除meta表信息
在meta表查询数据:
scan 'hbase:meta', {STARTROW=>'TERMINAL_ORDER_DATA,0', ENDROW=>'TERMINAL_ORDER_DATA,9'} 通过rowkey删除,记得删除把该表的meta数据删除干净(server,serverstartcode,regioninfo,seqnumDuringOpen)
delete 'hbase:meta', {STARTROW=>'DEV_TERMINAL_DETAIL_DATA,0', ENDROW=>'DEV_TERMINAL_DETAIL_DATA,9',COLUMN=>'info:server'} --我用的是删除整行记录,不知是不是这里的问题,导致不成功
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,1,1568875708811.3168f0db04c8ba74e178bca382255f69.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,2,1568875708811.477a4ddb088a3693c0091521b19c76b8.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,3,1568875708811.25fd956f82d7e9f255db5edbbd233424.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,4,1568875708811.1214182080ddbeb2ffe166c97ab4bf97.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,5,1568875708811.71326bc45285e6ce4bb3fbf3701db36d.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,6,1568875708811.9bf957a71f33e441b2a6838b63f2627e.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,7,1568875708811.5c459432d8cbf3240af531f02d0fa676.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,8,1568875708811.1040cce5b163b10280d12fb9062ccd2c.'
deleteall 'hbase:meta', 'TERMINAL_ORDER_DATA,9,1568875708811.c7bd43f03f1cad14eacc8ae4f05358c9.'
  • 这时候去hbase中查看,发现还有该表,但是对该HBase表操作提示没有表信息了,这时候重启regionserver就解决问题了,如果是正式环境就不要重启了,直接创建一下该表就能正常使用了

问题就出现在这里,我按照上面的方法处理了后,重启hbase竟然起不来了,不知是哪一步出问题了。搞得最后清空了所有hbase的数据才弄好。在这里先记录一下,后续在分析。

如果要是在生产环境中就需要谨慎的去操作了。

参考 http://stackoverflow.com/questions/14557742/table-is-neither-enables-nor-disabled-in-hbase,通过hbase hbck -fixMeta -fixAssignments.也无法修复!

参考的资料:

https://blog.xiaoxiaomo.com/2016/11/12/HBase-%E5%BC%BA%E5%88%B6%E5%88%A0%E9%99%A4%E8%A1%A8/

HBase管理与监控——强制删除表的更多相关文章

  1. HBase管理与监控——彻底删除HBase数据

    1.hadoop的bin目录下,执行命令以下命令清除Hbase数据 hadoop fs -rm -r /hbase 2.连接ZK,执行以下命令清除Hbase数据 rmr /hbase 3.重启ZK.重 ...

  2. HBASE强制删除表

    1,先把hdfs的对应表的数据删除 hadoop fs -mv /hbase/<table_name> /tmp 2,修复meta信息 hbase hbck -fixMeta -fixAs ...

  3. HBase 强制删除表

    业务系统中有一张表drop不掉了. 可以disable,就是drop不掉. 解决办法: 1.将HDFS上的数据删除或移动 hadoop fs -mv /hbase/<table_name> ...

  4. HBase管理与监控——WebUI

    一.Region Server栏信息 Requests Per Second,每秒读或写请求次数,可以用来监控HBase请求是否均匀.如果不均匀需排查是否为建表的region划分不合理造成. Num. ...

  5. HBase管理与监控——统计表行数

    背景 HBase统计 RowCount 的方法有好几种,并且执行效率差别巨大,以下3种方法效率依次提高.   一.hbase-shell的count命令 这是最简单直接的操作,但是执行效率非常低,适用 ...

  6. HBase管理与监控——HBase region is not online

    发现有些regison程序操作失败,其他region 都是正常的,重启regionserver 后依然报同样的错误. 首先进入hbase的bin目录,执行下面命令检查表是否有存储一致性问题: hbas ...

  7. HBase管理与监控——内存调优

    HMaster 没有处理过重的负载,并且实际的数据服务不经过 HMaster,它的主要任务有2个:一.管理Hbase Table的 DDL操作, 二.region的分配工作,任务不是很艰巨. 但是如果 ...

  8. HBase管理与监控——HMaster或HRegionServer自动停止挂掉

    问题描述 HBase在运行一段时间后,会出现以下2种情况: 1.HMaster节点自动挂掉: 通过jps命令,发现HMaster进程没了,只剩下HRegionServer,此时应用还能正常往HBase ...

  9. HBase管理与监控——Dead Region Servers

    [问题描述] 在持续批量写入HBase的情况下,出现了Dead Region Servers的情况.集群会把dead掉节点上的region自动分发到另外2个节点上,集群还能继续运行,只是少了1个节点. ...

随机推荐

  1. Python---安装路径查看

    python是解释型脚本语言,在执行时,逐句解释执行,不需要进行预编译.但需要有自身的Python解释器.  所以在执行Python代码时,需要指定python解释器.  指定解释器方法: 在文件开头 ...

  2. final 在 java 中有什么作用?(未完成)

    final 在 java 中有什么作用?(未完成)

  3. wampserver apache 500 Internal Server Error解决办法

    Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to ...

  4. ICPC2019徐州站游记

    day0 出师不利 差两分钟没赶上高铁回去我一定每天都到下边玩跑步 改签成卧铺,原来3点发7点到现在11点发9点到 本来计划火车上3个人练习一场,晚上宾馆还可以cf 结果全泡汤了,在火车站浪了一晚上 ...

  5. Java&Selenium自动化测试之数据驱动

    一.摘要 本片博文以四个方式展示自动化测试的数据驱动,数组.CSV.Excel.Mysql 二.TestNG&Csv&Driven package testNGWithDataDriv ...

  6. Linux之df磁盘信息

    df命令用于查看磁盘的分区,磁盘已使用的空间,剩余的空间 1.用法 df [选项] [文件..] 2.命令选项 -a,--all 全部文件系统-h,--human-readable 以以合适的单位来显 ...

  7. rac 关于RACScheduler的一点学习

    RACScheduler  信号调度器,是一个线性执行队列,rac中的信号可以在RACScheduler上执行任务.发送结果,底层用GCD封装的. rac中提供生成线程的几个方法: 1:schedul ...

  8. Hive中遇到全角

    今天在梳理银行SQL业务的时候出现了一个全角的问题:两个种代码 都可以 使用了UDF函数解决 package 广发; import org.apache.hadoop.hive.ql.exec.Des ...

  9. 请求返回模板定制,@RestControllerAdvice

  10. luogu P4843 清理雪道

    嘟嘟嘟 这其实就是一个最小流的板子题.把每一条边的流量至少为1,然后建立附加源汇跑一遍最大流,连上\(t, s\),再跑一遍最大流就是答案. 刚开始我想错了:统计每一个点的出度和入度,去两者较大值\( ...