更新时间:2024-11-29 GMT+08:00

Solr over HBase调优建议

操作场景

该操作指导MRS集群管理员在使用Solr over HBase相关功能时,对环境配置进行调优。

前提条件

已成功安装HDFS、Solr、Yarn、HBase服务。

操作步骤

使用Solr over HBase相关功能时,可以从以下几个方面进行调优配置:

  • 操作系统优化

    如果Solr索引在HDFS上,参考Solr over HDFS调优建议章节操作步骤中操作系统优化小节进行配置。

  • 实时索引相关调优建议
    1. 修改collection配置集的“solrconfig.xml”配置文件中,<autoSoftCommit>配置项,根据使用场景尽量设置大一些,设置越大索引效率越高。
    2. 修改HBase服务配置,然后重启HBase服务:
      • “replication.source.nb.capacity”:5000(HBase集群每次向HBaseIndexer发送的entry最大的个数,推荐5000。可根据集群规模做出适当调整,根据HBaseIndexer部署情况适当增大)。
      • “replication.source.size.capacity”:4194304(HBase每次向HBaseIndexer发送的entry包的最大值大小,不推荐过大)。
    3. 修改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的服务线程数,根据集群环境适当调整。
    4. 修改HBaseIndexer服务配置,然后重启HBaseIndexer实例:
      • “hbaseindexer.indexer.threads”:50(默认值为20,HBaseIndexer实例进行索引操作时启动的并发线程数量)。
      • 调整 “GC_OPTS”至4GB,内存空间充足,可以考虑适当增加。
  • 批量索引、增量索引相关调优建议
    1. SolrServer的GC参数配置(如果内存充足可以考虑增大):-Xmx8G -Xms8G
    2. Yarn的配置,修改后重启Yarn服务:
      • “mapreduce.reduce.memory.mb”:8192(根据节点配置进行修改)
      • “yarn.resourcemanager.scheduler.class”:org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
    3. 修改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