Solr over HBase调优建议
操作场景
该操作指导MRS集群管理员在使用Solr over HBase相关功能时,对环境配置进行调优。
前提条件
已成功安装HDFS、Solr、Yarn、HBase服务。
操作步骤
使用Solr over HBase相关功能时,可以从以下几个方面进行调优配置:
- 操作系统优化
如果Solr索引在HDFS上,参考Solr over HDFS调优建议章节操作步骤中操作系统优化小节进行配置。
- 实时索引相关调优建议
- 修改collection配置集的“solrconfig.xml”配置文件中,<autoSoftCommit>配置项,根据使用场景尽量设置大一些,设置越大索引效率越高。
- 修改HBase服务配置,然后重启HBase服务:
- “replication.source.nb.capacity”:5000(HBase集群每次向HBaseIndexer发送的entry最大的个数,推荐5000。可根据集群规模做出适当调整,根据HBaseIndexer部署情况适当增大)。
- “replication.source.size.capacity”:4194304(HBase每次向HBaseIndexer发送的entry包的最大值大小,不推荐过大)。
- 修改HDFS服务配置,然后重启HDFS服务:
- “hadoop.rpc.protection”:authentication(关闭数据传输加密,安全模式默认值为privacy,普通模式默认值为authentication)。
- “ipc.server.handler.queue.size”:队列中允许的每个处理程序可处理的调用数,根据集群环境适当调整。
- “dfs.namenode.handler.count”:NameNode的服务器线程数,根据集群环境适当调整。
- “dfs.namenode.service.handler.count”:NameNode的服务器线程数,根据集群环境适当调整。
- “dfs.datanode.handler.count”:DataNode的服务线程数,根据集群环境适当调整。
- 修改HBaseIndexer服务配置,然后重启HBaseIndexer实例:
- “hbaseindexer.indexer.threads”:50(默认值为20,HBaseIndexer实例进行索引操作时启动的并发线程数量)。
- 调整 “GC_OPTS”至4GB,内存空间充足,可以考虑适当增加。
- 批量索引、增量索引相关调优建议
- SolrServer的GC参数配置(如果内存充足可以考虑增大):-Xmx8G -Xms8G
- Yarn的配置,修改后重启Yarn服务:
- “mapreduce.reduce.memory.mb”:8192(根据节点配置进行修改)
- “yarn.resourcemanager.scheduler.class”:org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
- 修改HBaseIndexer的配置文件,进入“Solr客户端的安装目录/hbase-indexer/”,执行以下命令修改配置文件:
vi /opt/client/Solr/hbase-indexer/conf/hbase-indexer-site.xml
设置“hbase-indexer-site.xml”部分以下几个参数的参数值(如某些参数项不存在,可手动添加):
表1 “hbase-indexer-site.xml”配置文件修改 参数(name)
参数值(value)
solr.record.writer.batch.size
500
solr.record.writer.max.queues.size
300
solr.record.writer.num.threads
5
solr.record.writer.maxSegments
5
vi /opt/client/Solr/hbase-indexer/conf/yarn-site.xml
设置“yarn-site.xml”部分以下几个参数的参数值(如某些参数项不存在,可手动添加):
表2 “yarn-site.xml”配置文件修改 参数(name)
参数值(value)
mapreduce.map.speculative
false
mapreduce.reduce.speculative
false