【问题标题】:How to load native library(.so) in Apache SOLR Cloud mode?如何在 Apache SOLR 云模式下加载本机库(.so)?
【发布时间】:2017-02-09 14:13:36
【问题描述】:

我编写了一个 SOLR 自定义查询解析器(org.apache.solr.search.QParser 的实现)。我的查询解析器使用了一些第三方 jars。第三方 jar 之一需要本机库(.so 文件)才能工作。此插件在非云模式下运行 solr 时工作正常,但是当我在云模式下运行时,SOLR 会抛出以下错误:

java.lang.UnsatisfiedLinkError: Native Library /opt/solr-6.2.0/lib/xyz.so already loaded in another classloader

我已将所有第三方和查询解析器 jar 和 .so 文件保存在 SOLR_HOME/lib 目录中并进行了修改:

  1. 将 lib dir= "${solr.install.dir:../../../..}/lib/" 添加到 solrconfig.xml

  2. 在 SOLR_HOME/bin/solr 文件中:

    SOLR_START_OPTS= "-Djava.library.path=$SOLR_TIP/lib/"

请帮忙。提前致谢。

【问题讨论】:

    标签: java apache solr lucene


    【解决方案1】:

    最后,我找到了解决方案(感谢我的一位前辈)。在云模式下运行时,请遵循以下说明:

    1. SOLR_HOME 中创建lib 目录并将native-library(.so) 文件放在那里。
    2. SOLR_HOME/bin/solr文件中,将此行添加到SOLR_START_OPTS

      SOLR_START_OPTS= "-Djava.library.path=$SOLR_TIP/lib/"

    3. 在每个节点库(即 SOLR_HOME/example/cloud/node1/lib、SOLR_HOME/example/cloud/node2/lib)中创建 lib 文件夹,并将所有自定义插件 jar 放入这些新创建的 lib 文件夹中.

    4. 在云模式下重启 solr。

    希望,它会有所帮助!

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 2017-08-04
      • 2016-08-16
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多