Solr 9.1集合创建

vpfxa7rd  于 2023-01-20  发布在  Solr
关注(0)|答案(1)|浏览(243)

我已经在三台运行Ubuntu 22.04.1 LTS的EC2上安装了zookeeper 3.7.1和Solr 9.1,配置文件如下:

tickTime=2500
dataDir=/zookeeper
clientPort=2181
maxClientCnxns=80
initLimit=10
syncLimit=5
server.1=10.9.9.x:2888:3888
server.2=10.9.10.y:2888:3888
server.3=10.9.13.z:2888:3888
4lw.commands.whitelist=*

Solr部署几乎是直接开箱即用的,solr.xml没有修改,如下所示:

<solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">${solr.port.advertise:0}</int>
    <str name="hostContext">${hostContext:solr}</str>

    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DefaultZkCredentialsProvider}</str>
    <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DefaultZkACLProvider}</str>
    <str name="zkCredentialsInjector">${zkCredentialsInjector:org.apache.solr.common.cloud.DefaultZkCredentialsInjector}</str>
    <bool name="distributedClusterStateUpdates">${distributedClusterStateUpdates:false}</bool>
    <bool name="distributedCollectionConfigSetExecution">${distributedCollectionConfigSetExecution:false}</bool>

</solrcloud>

在/etc/default/www.example.com中的配置如下:solr.in.sh is as follows:

SOLR_JETTY_HOST="0.0.0.0"
ZK_HOST="10.9.9.x:2181,10.9.13.y:2181,10.9.10.z:2181"
SOLR_JAVA_MEM="-Xms2G -Xmx4G"
SOLR_PID_DIR="/srv/apps_data/solrcloud"
SOLR_HOME="/srv/apps_data/solrcloud/data"
LOG4J_PROPS="/srv/apps_data/solrcloud/log4j2.xml"
SOLR_LOGS_DIR="/srv/apps_data/solrcloud/logs"
SOLR_PORT="8983"

# The following lines added by ./solr for enabling BasicAuth
SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dsolr.httpclient.config=/srv/apps_data/solrcloud/data/basicAuth.conf"

我启用了基本身份验证,所有三个Admin UI中的一切看起来都很好。Zookeeper状态良好,三个服务器现在都部署在solrcloud模式下。安全部分如下:

到目前为止一切顺利。
接下来,我将使用基本身份验证凭据http://solr:solr@10.9.9.x:8983/solr/admin/configs?action=UPLOAD&name=calls以及包含这两个文件的zip文件创建一个配置

managed-schema.xml
solrconfig.xml

当我在zookeeper树/configs/calls下查看它时,我看到了一个小注解{" trusted ":true}。
当尝试创建集合时,问题就出现了。我使用集合APIV1,有3个碎片和2个副本,使用异步方法
文件名:solr/admin/collections?操作=创建&名称=调用&数量碎片= 3 &复制因子= 2 &集合.配置名称=调用&异步= 123456

"1234562330250161386315": {
        "responseHeader": {
            "status": 0,
            "QTime": 0
        },
        "STATUS": "failed",
        "msg": "Error CREATEing SolrCore 'calls_shard1_replica_n1': Unable to create core [calls_shard1_replica_n1] Caused by: solr.XSLTResponseWriter"
    },

我错过了什么?我的研究表明,XSLTResponseWriter的问题是由于缺乏信任或身份验证引起的。配置Solr 9.1以允许创建集合的正确方法是什么?
任何帮助将不胜感激!!

4uqofj5v

4uqofj5v1#

我发现了这个问题。在9.0的发行说明中,它做了一些传递性的注解

  • 为了提高安全性,XSLTResponseWriter已经被移到脚本模块中,而不是作为Solr核心的一部分提供。这个模块需要显式启用。

换句话说,solr在云模式下根本无法工作,除非开箱即用的配置得到纠正,所需的更改需要在/etc/default/ www.example.com中solr.in.sh为我在ubuntu上的部署进行,并且需要启用脚本模块。
以下行出现在新安装的solr.in.sh文件中(在/etc/default中),

# The bundled plugins in the "modules" folder can easily be enabled as a comma-separated list in SOLR_MODULES variable
# SOLR_MODULES=extraction,ltr

为了能够使用solrcloud和创建集合等,需要包含以下行:

SOLR_MODULES="extraction,ltr,scripting"

有了这个改变,solrcloud就像预期的那样工作了!

相关问题