SOLR Zookeeper CLI失败 - IOException数据包len超出范围

时间:2015-10-29 08:14:25

标签: solr apache-zookeeper solr5

我想在SOLR 5.3.1中运行安全身份验证和授权,并将security.json文件放在solr根文件夹中,但运行CLI时如下所示:

/cygdrive/c/xampp/htdocs/solr$ server/scripts/cloud-scripts/zkcli.bat -zkhost localhost:8983 -cmd putfile  /security.json security.json

我收到以下问题:

WARN  - 2015-10-29 15:39:01.656; org.apache.zookeeper.ClientCnxn$SendThread;      Session 0x0 for server frontend.dev/127.0.0.1:8983, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Packet len1213486160 is out of range!
    at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

我浏览了以下文章:

Zookeeper CLI failing - IOException Packet <len12343123123> is out of range

我按照说明增加了缓冲区大小。我在zkcli.bat中将其增加如下。命令如下:

zkcli.bat

@echo off
REM You can override pass the following parameters to this script:
REM 

set JVM=java

REM  Find location of this script

set SDIR=%~dp0
if "%SDIR:~-1%"=="\" set SDIR=%SDIR:~0,-1%
"%JVM%" -Dlog4j.configuration="file:%SDIR%\log4j.properties" -Djute.maxbuffer="20213486160" -classpath "%SDIR%\..\..\solr-webapp\webapp\WEB-INF\lib\*;%SDIR%\..\..\lib\ext\*" org.apache.solr.cloud.ZkCLI %*

即使我在server \ solr下的zoo.cfg中设置了maxClientCnxns,minSessionTimeout和maxSessionTimeout:

zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=500
minSessionTimeout=100000
maxSessionTimeout=200000

security.json文件如下:

{
"authentication":{
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0=     Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"user-role":{"solr":"admin"},
"permissions":[{"name":"security-edit",
              "role":"admin"}]
}}

我用谷歌搜索但是没有得到任何解决方案。请在SOLR中为安全认证和授权工作提供帮助。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但在我的情况下,solr 6是在正常模式下运行而不是在集群模式下运行。要在群集模式下运行solr,您需要-c标志。 然后动物园管理员在911号港口上运行。

./solr status

看看你是否有一个动物园管理员在哪个港口运行