zoukankan      html  css  js  c++  java
  • hbase.client.keyvalue.maxsize的默认值

    hbase的列族的最大值是在hbase配置里的hbase.client.keyvalue.maxsize,默认大小为10M,即 10485760 。
     
    一直使用hbase作大容量存储,因为hbase易于存取。

    今天,在录入数据的时候,突然报出一个KeyValue size too large。很是奇怪。
    private void validatePut(final Put put) throws IllegalArgumentException{
        if (put.isEmpty()) {
          throw new IllegalArgumentException("No columns to insert");
        }
        if (maxKeyValueSize > 0) {
          for (List list : put.getFamilyMap().values()) {
            for (KeyValue kv : list) {
             if (kv.getLength() > maxKeyValueSize) {
     
     
                throw new IllegalArgumentException("KeyValue size too large");
              }
            }
          }
        }
      }

    说明当某一列的值大于该值的时候,将会抛出该异常,又查看maxKeyValueSize,发现它调用的是hbase配置里的hbase.client.keyvalue.maxsize,默认大小为10M,即 10485760 。将它改大即可。

    但是,当我修改完以后,启动hbase总是出问题,后来又将hbase-env.sh里的HBASE_HEAPSIZE改大。

    后来又将mapred-site.xml中的mapred.tasktracker.indexcache.mb改大,至于大于hbase.client.keyvalue.maxsize,不知道有没有影响,以防万一吧,我觉得hbase的执行应该是跟job有关系的吧。

    请大家多多指教

    private void validatePut(final Put put) throws IllegalArgumentException{  
        if (put.isEmpty()) {  
          throw new IllegalArgumentException("No columns to insert");  
        }  
        if (maxKeyValueSize > 0) {  
          for (List<KeyValue> list : put.getFamilyMap().values()) {  
            for (KeyValue kv : list) {  
            <strong>  if (kv.getLength() > maxKeyValueSize) {</strong>  
      
      
                throw new IllegalArgumentException("KeyValue size too large");  
              }  
            }  
          }  
        }  
      }  
  • 相关阅读:
    寻找大富翁
    C++ STL sort()函数用法
    众数
    平方因子
    Hdu 1089 A+B for Input-Output Practice (I)
    Hdu 1090 A+B for Input-Output Practice (II)
    Hdu 1083 Courses
    Hdu 1069 Monkey and Banana
    Hdu 1062 Text Reverse
    Hdu 1068 Girls and Boys
  • 原文地址:https://www.cnblogs.com/langtianya/p/8041792.html
Copyright © 2011-2022 走看看