Solr问题集锦

开发环境说明:

ambari v2.6.1

Solr v5.5.5

笔者使用的ambari来自动化安装的Solr

一、org.apache.solr.common.SolrException

报错:

audit_logs_shard0_replica1: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: /opt/ambari_infra_solr/data/audit_logs_shard0_replica1/data/index/write.lock

分析:

解决方法:

  • 在infra-solr所在机器,执行:chown -R infra-solr:hadoop /opt/ambari_infra_solr/data/
  • 重启infra-solr服务

问题得到解决。

二、Can’t find resource ‘solr-data-config.xml’

报错:

使用Solr web UI上面的dataimport选项时,配置文件会报错:

<str>Can't find resource 'solr-data-config.xml' in classpath or '/configs/audit_logs', cwd=/usr/lib/ambari-infra-solr/server</str>

问题分析:

意思就是说,在/configs/audit_logs目录下找不到solr-data-config.xml这个文件。

点击Solr页面的Files选项,确实没有solr-data-config.xml文件。如图所示:

那么这些文件的来源在哪里呢?答案是Zookeeper

SolrCloud是基于SolrZookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。所以Collection的配置文件都来源于Zookeeper

解决办法:

Solr为我们提供了一个上传、修改、查看Zookeeper里面Znode信息的脚本,我们可以使用该脚本zkcli.sh来上传solr-data-config.xml文件。该文件路径:/usr/lib/ambari-infra-solr/server/scripts/cloud-scripts/zkcli.sh

<!-- 
文件名称:solr-data-config.xml 
文件作用:用于配置mysql相关信息,将mysql数据导入Solr中
-->
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
   <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://node96.xdata:3309/test" user="root" password="root123"/>
      <document>
             <entity name="mysql_import_solr"
                        query="select id, name, address from solr_test_info">
                              <field column="id" name="id" />
                              <field column="name" name="name" />
                              <field column="address" name="address" />
             </entity>
      </document>
</dataConfig>

solr-data-config.xml上传到Zookeeper指定目录,执行下列命令:

/usr/lib/ambari-infra-solr/server/scripts/cloud-scripts/zkcli.sh -zkhost node96.xdata:2181,node97.xdata:2181,node98.xdata:2181 -cmd putfile /infra-solr/configs/ranger_audits/solr-data-config.xml solr-data-config.xml

点击页面的Reload按钮,来重新加载配置文件,再次点击Configuration,发现报错消失,solr-data-config.xml内容被显示,问题得到解决。


更多精彩干货内容,请您关注微信公众号实时查看

### Solr 常见问题及解决方法 #### 1. 环境配置问题 确保系统中已安装 Java 8 或更高版本,并正确配置环境变量。可以通过以下命令检查 Java 版本: ```bash java -version ``` 如果 Java 未正确安装或配置,可能会导致 Solr 无法启动。此时需要重新安装 Java 并设置 `JAVA_HOME` 环境变量[^1]。 #### 2. 下载与解压问题 从官方渠道下载 Solr 的最新稳定版本后,需确保文件完整性并正确解压。进入 Solr 目录运行以下命令启动服务: ```bash bin/solr start ``` 若启动失败,可能是因为解压过程中文件损坏或权限不足。可以尝试重新下载并以管理员身份执行上述命令[^1]。 #### 3. 示例运行问题 在运行 Solr 示例时,可能会遇到索引或查询异常。这通常与示例数据格式不匹配或配置错误有关。建议仔细检查 `solrconfig.xml` 和 `schema.xml` 文件是否符合预期格式[^2]。 #### 4. 用户和组配置问题 当使用自动化工具(如 Ansible)部署 Solr 时,可能因用户和组配置不当导致服务启动失败。需要确认 `/etc/passwd` 和 `/etc/group` 文件中是否存在 Solr 用户和组。如果不存在,可通过以下命令手动创建: ```bash sudo useradd -m solr sudo groupadd solr ``` 同时,修改 Ansible 角色中的变量 `solr_create_user` 和 `solr_user`,确保它们与实际的用户和组一致[^3]。 #### 5. 服务启动失败 Solr 服务启动失败的原因可能包括但不限于:端口被占用、配置文件错误或磁盘空间不足。可以通过查看日志文件(通常位于 `logs/` 目录下)定位具体问题。例如,若日志显示端口冲突,可尝试更改默认端口 `8983` 为其他可用端口[^3]。 #### 6. 全文搜索插件问题 对于基于 Ruby 的项目(如 `acts_as_solr`),需要确保 Java 运行环境已正确安装。此外,还需验证 Solr 服务是否正常运行以及 Rails 模型是否正确集成全文搜索功能[^4]。 ```ruby class Article < ActiveRecord::Base acts_as_solr :fields => [:title, :content] end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

create17

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

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

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

打赏作者

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

抵扣说明:

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

余额充值