【发布时间】:2018-11-29 09:28:56
【问题描述】:
我正在通过 Java Spring boot 执行 hbase 操作。我收到错误“大小为 10762275 的单元格超出了 10485760 字节的限制”。
我在某处了解到增加单元格大小,即需要在 hbase-site.xml 中将“hbase.server.keyvalue.maxsize”设置为所需大小才能解决此问题。 我添加了这个属性并解决了问题。
但是我想通过我的 Java 代码添加这个属性,因为我可能无法在生产环境中访问 hbase-site.xml。
我设置属性的配置方法是:
public Configuration createHbaseConfiguration() {
Configuration conf = HBaseConfiguration.create();
conf.clear();
conf.set("hbase.master.port", hbaseConnectionPortNum);
conf.set("hbase.master", hbaseConnectionIpAddr);
conf.set("hbase.zookeeper.quorum", zookeeperConnectionIpAddr);
conf.set("hbase.zookeeper.property.clientPort", zookeeperConnectionPortNum);
conf.setInt("hbase.client.retries.number", 2);
conf.setInt("hbase.client.keyvalue.maxsize", 0);
conf.setInt("hbase.server.keyvalue.maxsize", 0);
return conf;
}
我能够连接到 hbase,也可以通过 java 使用这些属性执行所有其他 hbase 操作,但是我在单元大小问题上遇到了相同的问题。
注意: 将“hbase.server.keyvalue.maxsize”设置为 0 会移除所有单元格大小限制。
总结: 如果我在 hbae-site.xml 中设置属性“hbase.server.keyvalue.maxsize”,它会非常好,但是如果我尝试通过 java 以编程方式添加它,它就不起作用了。 p>
请告诉我问题的原因和解决方案?
【问题讨论】:
标签: java spring-boot hadoop hbase