HBase启动表卡在PENDING_OPEN的解决记录

小记。

 

启动时表卡在PENDING_OPEN的原因可能有很多。不同的原因解决方法不同。这里仅针对下列场景。

 

HBase0.94.1

 

公司有个孩子在某个环境上给一张表加了"COMPRESSION=>SNAPPY", 抱歉的是这个环境上并没有SNAPPY.结果如何?

HBase启动的时候其他表正常,但是这张表卡在PENDING_OPEN了。看日志,找不到SNAPPY库抛异常了。可是抛出了异常,HBase又会重试,就陷入死循环了.(这个是HBase的bug了,又可以给他们提个JIRA了吧。不过近期没有去关注他们的JIRA, 不知道更高版本的解决了没有)。

尝试处理:

重启--------重启?重启完不还是陷入PENDING_OPEN的循环

把对应的region unassign掉?-----------shell里这么做会直接报错,不给机会啊

改变表的schema,尝试去掉COMPRESSION?-------------美好的想法,但是修改shema需要disable表。处于PENDING_OPEN的表是一个什么状态呢?你disable它,它说没有enable; 好吧,那enable它吧,说没有disable. 这表就卡在又没disable又没enable的状态上

 

到这里我已经没辙了(有人有更官方的办法的请留言指导)。

 

最后,忒土的办法,停掉HBase, 直接到Hadoop上,找到对应表的.tableinfo.0000xxxx文件,直接拿起来改里面的文本内容,把COMPRESSION改成NONE.重启。搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是向HBase数据表中插入t_user中数据的Java代码: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.util.Bytes; public class HBaseInsert { public static void main(String[] args) throws Exception { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "localhost"); config.set("hbase.zookeeper.property.clientPort", "2181"); Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf("t_user")); Put put = new Put(Bytes.toBytes("001")); put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("张三")); put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("20")); put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("gender"), Bytes.toBytes("男")); table.put(put); table.close(); connection.close(); System.out.println("数据插入成功!"); } } ``` 以上代码中,首先创建一个HBase的连接,然后获取到t_user表的对象,接着构建一个Put对象,并向其中添加数据列,最后通过table.put()方法将数据插入到HBase表中。 运行结果如下所示: ``` 数据插入成功! ``` 可以通过HBase Shell命令行工具来查看插入的数据: ``` hbase(main):001:0> scan 't_user' ROW COLUMN+CELL 001 column=info:age, timestamp=1632140456432, value=20 001 column=info:gender, timestamp=1632140456432, value=男 001 column=info:name, timestamp=1632140456432, value=张三 1 row(s) in 0.0140 seconds ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值