记一次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 集群后这张表已经不存在,重新建表后正常

转载请注明出处


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

查看所有标签

猜你喜欢:

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

奇点临近

奇点临近

Ray Kurzweil / 董振华、李庆成 / 机械工业出版社 / 2011-10 / 69.00元

人工智能作为21世纪科技发展的最新成就,深刻揭示了科技发展为人类社会带来的巨大影响。本书结合求解智能问题的数据结构以及实现的算法,把人工智能的应用程序应用于实际环境中,并从社会和哲学、心理学以及神经生理学角度对人工智能进行了独特的讨论。本书提供了一个崭新的视角,展示了以人工智能为代表的科技现象作为一种“奇点”思潮,揭示了其在世界范围内所产生的广泛影响。本书全书分为以下几大部分:第一部分人工智能,第......一起来看看 《奇点临近》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具