簡體   English   中英

如何在Apache SOLR Cloud模式下加載本機庫(.so)?

[英]How to load native library(.so) in Apache SOLR Cloud mode?

我已經編寫了一個SOLR自定義查詢解析器(org.apache.solr.search.QParser的實現)。 我的查詢解析器使用了一些第三方jar。 第三方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. 在solrconfig.xml中添加了lib dir =“ $ {solr.install.dir:../../../ ..} / lib /”

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

    SOLR_START_OPTS =“ -Djava.library.path = $ SOLR_TIP / lib /”

請幫忙。 提前致謝。

最終,我找到了解決方案(信用歸我的上級之一)。 在雲模式下運行時,請遵循以下說明:

  1. SOLR_HOME內創建lib目錄,並在SOLR_HOME放置native-library(.so)文件。
  2. SOLR_HOME/bin/solr文件中,將此行添加到SOLR_START_OPTS

    SOLR_START_OPTS =“ -Djava.library.path = $ SOLR_TIP / lib /”

  3. 在每個節點庫中創建lib文件夾(即SOLR_HOME / example / cloud / node1 / lib,SOLR_HOME / example / cloud / node2 / lib),並將所有自定義插件jar放入這些新創建的lib文件夾中。

  4. 在雲模式下重新啟動Solr。

希望會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM