HBase二级索引Solr

本文介绍了在CDH环境下,如何利用Solr构建HBase的二级索引。在处理大量数据时,由于HBase的memstore刷新机制可能导致长时间锁住memstore,影响性能。通过调整hbase.hregion.memstore.block.multiplier和hbase.server.thread.wakefrequency配置,可以减少这种延迟,提高系统响应速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBase二级索引Solr:

CDH使用Solr实现HBase二级索引 - kekukekro - 博客园

基于CDH的solr+Key-Value Store Indexer+hbase二级索引框架构建(一)_yzh865318761的博客-优快云博客

hadoop --config /etc/hadoop/conf jar /opt/cloudera/parcels/CDH/lib/hbase-solr/tools/hbase-indexer-mr-1.5-cdh5.8.5-job.jar --conf /etc/hbase/conf/hbase-site.xml -D 'mapred.child.java.opts=-Xmx 1000m' --hbase-indexer-file /opt/cdhsolr/cctb01/Mapper.xml --morphline-file /opt/cm-5.8.5/run/cloudera-scm-agent/process/1602-ks_indexer-HBASE_INDEXER/morphlines.conf --zk-host s203:2181,s204:2181,s205:2181/solr --collection cctb01 --reducers 0

原来是因为region server在写入时会检查每个region对应的memstore的总大小是否超过了memstore默认大小的2倍(hbase.hregion.memstore.block.multiplier决定),如果超过了则锁住memstore不让新写请求进来并触发flush,避免产生OOM。由于在flush时还会触发compact/split等操作。因此这个过程通常比较长,必须要紧持到对应的memstore完全刷新到磁盘才会结束,因此regionserver会睡眠10s再检查memstore是不是低于阀值。 

    对于在线应用来说,10s的时间是不可接受的,但这个过程确实非常漫长,因此可以调整以下配置以减少或者避免这种情况的出现。 

<property>  
  <name>hbase.hregion.memstore.block.multiplier</name>  
  <value>8</value>//内存充足确保不会产生OOM的情况下,调大此值  
</property>  
<property>  
  <name>hbase.server.thread.wakefrequency</name>  
  <value>100</value>//减少睡眠等待时间,默认值为10000  
</property>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mylife512

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值