我添加了
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>0</value>
</property>
在hbase-site.xml中。
我从hbase.client.keyvalue.maxsize
更改了hbase-0.94.27/docs/hbase-default.xml
值并将其设置为0
<glossentry id="hbase.client.keyvalue.maxsize">
<glossterm>
<varname>hbase.client.keyvalue.maxsize</varname>
</glossterm>
<glossdef>
<para>Default: <varname>0</varname></para>
</glossdef>
</glossentry>
并从hbase-0.94.27/src/main/resources/hbase-default.xml
更改并将其设置为0
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>0</value>
</property>
我也在Java上设置它
Configuration config = HBaseConfiguration.create();
config.setInt("hbase.client.keyvalue.maxsize", 0);
他们都没有被禁用keyvalue.maxsize
。有没有其他方法来禁用检查键值大小?
答案 0 :(得分:2)
首先,你在正确的位置hbase-default.xml(不确定你在应用此设置后重新启动)
如果0不适合您,可以尝试小于零的任何内容,如屏幕截图的描述标签中所述。
提示1: 要打印所有HBase配置,您可以使用来自调用者的此语句,该语句将打印来自不同源的所有配置条目(统一方式的系统属性或XML条目)。检查您的设置更改是否已应用。
HBaseConfiguration.create().writeXml(System.out);
提示2: 也可以使用转储主服务器和区域服务器配置 http服务。例如&#34; http://master:16010/dump&#34; 强>
第二件事,(这是预防措施)Hbase不推荐用于一个单元格的过高数据存储,您可以输入OOM。
For ex: KeyValue size too large at org. apache. hadoop. hbase.
client. hbase.client.keyvalue.maxsize <value. (3896):
java.lang.OutOfMemoryError: bitmap size exceeds too large for this the
size of 16MB, it will throw out of memory.
另外,如果您有200MB的值放入HBase,我建议您将其写入HDFS文件中(大约2个块!),然后将该文件中的参考文件写入HBase ...或者做其他事。