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");  
              }  
            }  
          }  
        }  
      }  
  • 相关阅读:
    Hystrix熔断原理
    FeignClient Hystrix超时重试降级
    Windows上Docker Toolbox修改镜像源
    Windows10家庭版安装docker
    Class类文件结构--访问标志
    MySQL常见的七种锁详细介绍()
    maven setting.xml 阿里云镜像 没有一句废话
    mysql 批量操作,已存在则修改,不存在则insert,同时判断空选择性写入字段
    hdu5730
    3月部分题目简要题解
  • 原文地址:https://www.cnblogs.com/langtianya/p/8041792.html
Copyright © 2011-2022 走看看