HBase踩过的坑——持续更新

  • 时间:
  • 浏览:1
  • 来源:uu直播快3平台

历史数据的消费过程,刚刚 把数据写入HBase的过程,怎么让写入HBase过慢,容易造成消费不过来,产生数据堆积,刚刚数据堆积,会影响Kafka拉取数据消费发送心跳的超时。

3,  禁止autoflush:table.setAutoFlushTo(false); 并配置write buff:

   </property>

  大难题描述:

大难题描述:

  在某两个时刻,电池数据表的以你你這個规则开头的数据,比如M12******,什么电池老会 在上报数据,刚刚HBase的存储是按照字典顺序排序的,所有某一时刻,這個规则的数据落在了同两个region上,造成了数据热点。

     车联网的你你這個表我我觉得有无1000多个region。怎么让刚刚写入的数据有无完整版随机的,你你這個你你這個每次有无client只连接两个region去写,你你這個你你這個压测时没冒出此大难题。

2,  禁用预写日志:put.setDurability(Durability.SKIP_WAL);//禁用hbase的预写日志功能(怎么让禁用预写日志的土办法不足英文安全)

     发现有写对象在持续增长,刚刚观察写入HBase的监控,发现Hbase每秒写入数据操作在0.001次另两个子,通过对象分析,发现线程在执行任务刚刚,会有个LinkedBlockingQueue的队列,刚刚HBase写入阻塞,原应队列持续递增,FGC持续进行,判断大难题位于了HBase里面。

4,消费过程采用线程写入:最开始英语 英文英文用的可回收线程,怎么让观察GC发现,FGC过多,怎么让数据量大了,CUP占用不足英文,最后还是采用固定的数目的线程,多开十几次 客户端进行消费;

出理 方案:

1,  HBase写操作尽量采用批量写入操作;

     观察HBase目前配置:memstore:256M,hbase.hregion.max.filesize:10G (两个region最多管理10G的HFile),当写入的数据总量超过一定数量(1T)时,写入速率快一点 。写入土办法rowkey前加hash。

alter'batteryData',{METADATA=>{'SPLIT_POLICY'=>'org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy'}},{NAME=> 't'}

     禁用表的自动分期策略,刚刚刚刚有不需要 ,手动分区。

   出理 土办法:

  采用了固定线程持续运行一段时间刚刚,观察GC发现:

   <name>hbase.client.write.buffer</name>

    <value>100000000</value>

    刚刚写入土办法是完整版随机写入到各个region中,刚刚region数量过多,少许时间浪费在听候region释放资源,获取region连接,释放连接。。

    能源站对表预建了20个Region,随着数据量膨胀分裂到了11000个

<property>

出理 土办法:

   大难题描述: