记一次HBase Drop的错误

栏目: 数据库 · 发布时间: 6年前

内容简介:hbsae表进行数据清洗,在清空数据的时候发生错误,引发后续问题由于我想保留分区,所以选择了

hbsae表进行数据清洗,在清空数据的时候发生错误,引发后续问题

HBase version: 1.2.0-cdh5.11.1

  • HBase 清空数据
  1. truncate ‘TableName’(清除数据,并且清除了分区)
  2. truncate_preserve ‘TableName’(清除数据,不清除分区)

由于我想保留分区,所以选择了 truncate_preserve

问题发生:

用hbase shell 执行truncate_preserve ‘TableName’,中途网络问题ssh突然断开连接

  • shell显示:
Truncating 'TableName' table (it may take a while):
 - Disabling table...
 - Truncating table...

后重新连接ssh hbase shell,list 发现表名存在,但是scan、disable、drop命令都报Table not found

ERROR: Table TableName does not exist.

Start disable of named table:
  hbase> disable 't1'
  hbase> disable 'ns1:t1'

HBase Web UI 上也存在这张表,但是点进去有报错信息:

org.apache.hadoop.hbase.client.HBaseAdmin.checkTableExistence(HBaseAdmin.java:1499)
org.apache.hadoop.hbase.client.HBaseAdmin.isTableEnabled(HBaseAdmin.java:1510)
org.apache.hadoop.hbase.generated.master.table_jsp._jspService(table_jsp.java:192)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
org.apache.hadoop.hbase.http.lib.StaticUserWebFilter$StaticUserFilter.doFilter(StaticUserWebFilter.java:113)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
org.apache.hadoop.hbase.http.ClickjackingPreventionFilter.doFilter(ClickjackingPreventionFilter.java:48)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
org.apache.hadoop.hbase.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:1354)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
org.apache.hadoop.hbase.http.NoCacheFilter.doFilter(NoCacheFilter.java:49)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
org.apache.hadoop.hbase.http.NoCacheFilter.doFilter(NoCacheFilter.java:49)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:767)
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
org.mortbay.jetty.Server.handle(Server.java:326)
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

问题推断

第一反应是这张表到底存不存在?

到HDFS上查看文件:

hadoop fs -ls /hbase/data/default/TableName

发现文件目录存在,但是里面没有任何文件,是空目录。推断可能是文件已经删掉了,但是缓存中或者zk中还是有这张表的信息,因为突然中止导致table meta没有生成

尝试恢复

  • snapshot 恢复(失败)

因为这张表之前做过snapshot备份,想从snapshot恢复

clone_snapshot 'TableName_Bak', 'TableName'
restore_snapshot 'TableName_Bak'

发现一只会卡在 restore_snapshot 'TableName_Bak' ,应该是找不到这张表的meta

  • hbck修复(失败)

  • 想着通过meta修复,可以自动生成desc文件

#修复 meta
hbase hbck -fixMeta

#重新分配rs
hbase hbck -fixAssignments

执行这两条语句后发现日志中均没有该表名,也没有任何异常,问题依旧

  • zookeeper删除信息(成功)

登录hbase zk:

zkCli.sh

ls /hbase/table
rmr  /hbase/table/TableName 相关信息

ls /hbase/table-lock
rmr /hbase/table-lock/TableName 相关信息

重启hbase 集群后这张表已经不存在,重新建表后正常

转载请注明出处


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Probabilistic Method

The Probabilistic Method

Noga Alon、Joel H. Spencer / Wiley-Interscience / 2008-8-11 / USD 137.00

Praise for the Second Edition : "Serious researchers in combinatorics or algorithm design will wish to read the book in its entirety...the book may also be enjoyed on a lighter level since the diffe......一起来看看 《The Probabilistic Method》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器