Protocol message was toolarge. May be malicious. Use CodedInputStream.setSizeLimit() to increase ...

这是HBase较老版本的一个Bug,主要出现在HBase 0.98.2以及使用HBase 0.98.2的分布式数据库如Titan,JanusGraph中

Caused by:Portable(java.io.IOException): Call to host:port failed on local exception:com.google.protobuf.InvalidProtocolBufferException: Protocol message was toolarge. May be malicious. Use CodedInputStream.setSizeLimit() to increase thesize limit.

原因:Google Protobuf默认Block上限是64MB,当访问超过64MB的HBase Cell时出现上述异常。

超级节点的Get操作,其对应的HBase Cell一般超过64MB,get该节点时导致Protobuf访问异常。Scan和Write不受上述限制影响。

解决:升级HBase Client版本

      1)修改HBase Client端ProtobufUtil.java代码,将size设置到合适值,然后重新编译HBase。

      2)  采用更新版本的HBase,如HBase 0.98.23-hadoop*已经修正了这个bug。

Reference

https://issues.apache.org/jira/browse/HBASE-13825


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值