Hbase知识树

以下是工作中使用Hbase遇到的问题记录

 

目录

 

HBase常用 Shell 命令

常见问题 

删除列族和某一列值:

无法插入Null空值

hbase的主键相同,列值插入会覆盖

hbase shell 列出所有rowkey

truncate清除表数据

Hbase写入报错与zookeeper的连接数

HBase统计表行数(RowCount)的四种方法


 

  • HBase常用 Shell 命令

参考文章:HBase常用 Shell 命令

 

常见问题 

  • 删除列族和某一列值:

参考:http://c.biancheng.net/view/6535.html

  • 无法插入Null空值

向Hbase写入数据时,如果列族值为NULL,那么会报错java.lang.IllegalArgumentException:No columns to insert。

解决方法:在SQL语句中把NULL值过滤。

  • hbase的主键相同,列值插入会覆盖

测试:name字段为主键,第一次插入Jame:31  Marry:24,

修改hive表字段:Jame:13  Marry:12,

修改hive表后插入hbase,列族值被覆写。

  • hbase shell 列出所有rowkey

count 'tablename', INTERVAL=>1

  • truncate清除表数据

要保留分区应该使用 truncate_preserve 'tablename'命令

truncate命令会默认把表的region置为1

  • Hbase写入报错与zookeeper的连接数

在执行ETL任务过程中,发现Hbase写入过两周左右的时间就会报错,每次都是重启ETL工具解决。

经排查发现,hbase需要与zookeeper连接,而zookeeper在CDH中有设定最大的连接数限制

解决方法1:可在CDH中修改maxClientCnxns参数

这个配置参数将限制连接到ZooKeeper的客户端的数量,限制并发连接的数量,它通过IP来区分不同的客户端。此配置选项可以用来阻止某些类别的Dos攻击。该参数默认是60,将它设置为0将会取消对并发连接的限制。

首先这个连接数不是针对某个ip的,请注意这个限制的使用范围,

仅仅是单台客户端机器与单台zookeeper服务器之间的连接数限制,(***)

不是针对指定客户端IP,也不是zookeeper集群的连接数限制,

也不是单台zookeeper对所有客户端的连接数限制。

解决方法2:优化ETL工具中hbase与zookeeper的连接 

如何查看zookeeper连接数已经有多少了呢?

因为2181是zookeeper的端口,运行如下命令可统计连接数的数量:

netstat -na | grep 2181 | wc -l 

可具体确定的zookeeper连接地址来统计客户端的连接数。

HBase统计表行数(RowCount)的四种方法

HBase统计表行数(RowCount)的四种方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宇进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值