【大数据开发运维解决方案】Solr公共读写调优建议

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Solr是一个开源搜索平台,用于构建搜索应用程序。 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

前言

Solr是一个开源搜索平台,用于构建搜索应用程序。 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。


Solr调优部分总结

博主在工作中有一个基于Solr的全文检索项目,由于要求及时响应,故对Solr集群做了一些调优!
当Solr索引数据存放在本地磁盘或者HDFS时,可以从以下几个方面进行调优配置:

1、Schema的配置优化•uniqueKey定义为long类型

说明:

  • long类型的查询性能优于string类型,如果需要定义为string类型,可以在业务层建立long到string的映射。
  • 建议unqiueKey字段配置required="true"。
  • 建议uniqueKey字段配置docValues="true"。
  • 为了获得更好的查询性能,建议查询时显式地指定返回字段为uniqueKey字段。
  • 需要排序、统计的字段配置为docValues="true",可以有效节省内存使用(配置docValues="true"后,不需要再配置stored="true")

2、优化索引方案

可以通过修改“solrconfig.xml”文件内容来实现以下调优效果。

调优配置项 修改结果
提高索引速度,加大索引线程数 \<maxlndexingThreads>$(solr.maxlndexingThreads:16}</maxlndexingThreads\>
增大文档索引缓存 \<ramBufferSizeMB>1024\</ramBufferSizeMB>
增大索引段合并因子 \<memergeFactor>20\</mergeFactor>
加大索引自动硬提交时间 maxTime>$fsolr.autoCommit.maxTime:300001\</maxTime>
增大索引的自动软提交时间 \<maxTime>$solr.autoSoftCommit.maxTime:600001\</maxTime>
基于docValues获取uniqueKey的值 \<useDocValueGetField>true\</useDocValueGetField>
对docld进行排序,优先顺序读取磁盘 \<sortDocldBeforeGetDoc>true\</sortDocldBeforeGetDoc>
缓存docld,避免二次读取磁盘 \<useQuickFirstMatch>true\< /useQuickFirstMatch>

说明:
useDocValueGetField的使用场景:

  • 返回字段(fl)为uniqueKey
  • uniqueKey为Numberic类型(long/int/float/double)
  • uniqueKey配置docValues=true

useQuickFirstMatch的使用场景:

  • 索引入库后不再更改(删除/合并操作等)

3、优化查询方案

缓存在Solr中充当了一个非常重要的角色,Solr中主要包括以下3种缓存:

  • Filter cache(过滤器缓存),用于保存过滤器(fq参数)和层面搜索的结果;
  • Document cache(文档缓存),用于保存lucene文档存储的字段;
  • Query result(查询缓存),用于保存查询的结果。

    说明:
    
  • Solr中还包含lucene内部缓存,该缓存用户无法调控。

通过调整这3种缓存,可以对Solr的搜索实例进行调优。

可以通过修改“solrconfig.xml”文件内容配置缓存,如下:

缓存类型 修改方案
过滤器缓存 \<filterCache class="solr.FastLRUCache" size="200" initialSize="200" autowarmCount="50"/\>“size”和“initialSize”值为缓存document id的数量“autowarmCount”为“initialSize”值的1/4,根据实际场景合理设置,过大会占用大量内存
查询结果缓存 \<queryResultCache class="solr.FastLRUCache" size="3000"initialSize="3000autowarmCount="750"/>“size”和“initialSize”的值 = 不同查询和不同排字的数x 每次询字最数x2."autowarmCount”值为“initialSize”值的1/4.
文档缓存 ”size”和“initialSize”的值 = 一次询返回最大的文档数量x实例询的并发数

总结

Solr作为全文检索服务器时,主要是从Solr自身JVM、Schema、Solrconfig方面以及服务器性能上进行调优。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
2月前
|
分布式计算 监控 大数据
大数据调优经验
大数据调优经验
37 0
|
6天前
|
数据采集 运维 Cloud Native
Flink+Paimon在阿里云大数据云原生运维数仓的实践
构建实时云原生运维数仓以提升大数据集群的运维能力,采用 Flink+Paimon 方案,解决资源审计、拓扑及趋势分析需求。
357 0
Flink+Paimon在阿里云大数据云原生运维数仓的实践
|
12天前
|
存储 弹性计算 大数据
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
28 1
|
28天前
|
分布式计算 资源调度 Hadoop
大数据Hadoop集群部署与调优讨论
大数据Hadoop集群部署与调优讨论
|
10天前
|
数据采集 监控 关系型数据库
大数据运维之数据质量管理
大数据运维之数据质量管理
16 0
|
10天前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
1月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之官方的调优文档在哪里看
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
XML 安全 搜索推荐
大数据之 Solr 集群搭建
Solr是一个基于Java的高性能全文搜索服务器,扩展自Lucene,提供丰富查询语言和优化的查询性能。它支持通过HTTP接口以XML格式进行索引和搜索操作。在集群环境中,涉及解压软件包,配置环境变量,修改Zookeeper参数,文件分发,启动Solr和Zookeeper服务。建议使用非root用户启动,确保安全。启动后,通过WEB UI验证Solr集群部署是否成功,遇到问题如找不到solr.xml文件,可通过指定-Dsolr.solr.home参数解决。
|
1月前
|
存储 NoSQL 大数据
【大数据】LSM树,专为海量数据读写而生的数据结构
【大数据】LSM树,专为海量数据读写而生的数据结构
23 0
|
1月前
|
存储 监控 NoSQL
MongoDB分片:打造高性能大数据与高并发处理的完美解决方案
MongoDB分片:打造高性能大数据与高并发处理的完美解决方案

热门文章

最新文章