使用 SolrCloud 和 Zookeeper 创建集合时出错
Error when creating Collection with SolrCloud and Zookeeper
我正在尝试使用 Vagrant 测试 SolrCloud。我在一个盒子上安装了 Zookeeper 运行,在另一个盒子上安装了 Solr 运行。这些盒子位于专用网络上(我可以从每个盒子进入其中一个)。
当我尝试通过 Solr CLI 创建集合时,它超时了,我想是在它尝试与 Zookeeper 通信时。
Zookeeper 符合预期 运行。我使用以下命令在前台模式下启动它:
sudo bin/zkServer.sh start-foreground
我的 zoo.cfg 文件:
tickTime=2000
dataDir=/var/lib/zookeeper/1
clientPort=2181
server.1=localhost:2888:3888
然后我将在云模式下启动 Solr:
bin/solr start -c -z 172.28.128.3:2181
此时,一切似乎都很好。 Solr 日志中没有显示任何不良信息,Zookeeper 的控制台中也没有出现任何警报消息。
然后我尝试使用以下命令创建一个集合:
bin/solr create -c mycollection -d data_driven_schema_configs
然后我开始在 Solr 日志中看到很多错误,并且在 Zookeeper 中出现很多重复消息:
这两个 Solr 错误一遍又一遍:
java.io.IOException: Xid out of order. Got Xid 1299 with err 0
expected Xid 1298 for a packet with details: clientPath:null
serverPath:null finished:false header:: 1298,14 replyHeader:: 0,0,-4
request:: org.apache.zookeeper.MultiTransactionRecord@95acc4f3
response:: org.apache.zookeeper.MultiResponse@0
There was a problem trying to register as the leader:org.apache.solr.common.SolrException:
Could not register as the leader because creating the ephemeral registration
node in ZooKeeper failed
这来自 Zookeeper:
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket connection from /172.28.128.4:54548
2016-08-21 21:33:39,137 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew session 0x156aefeba2d0004 at /172.28.128.4:54548
2016-08-21 21:33:39,145 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1580] - Established session 0x156aefeba2d0004 with negotiated timeout 15000 for client /172.28.128.4:54548
2016-08-21 21:33:39,147 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@593] - Dropping packet at server of type 14
2016-08-21 21:33:39,154 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to read additional data from client sessionid 0x156aefeba2d0004, likely client has closed socket
2016-08-21 21:33:39,155 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for client /172.28.128.4:54548 which had sessionid 0x156aefeba2d0004
2016-08-21 21:33:40,698 - INFO
我不明白这是怎么回事。我觉得关键在于 Solr 错误:
Could not register as the leader because creating the ephemeral registration node in ZooKeeper failed
但是在搜索那个错误时我找不到任何有用的东西。任何人都可以阐明这里发生了什么吗?
上传solr配置文件到zookeeper试试
check here
$ sh zkcli.sh -cmd upconfig -zkhost <host:port> -confname <name for configset> -solrhome <solrhome> -confdir <path to directory with configset>
这里的问题是我使用的 Zookeeper (3.3.6) 版本与当前版本的 Solr (6.1.0) 不兼容。
Solr 试图使用该版本的 Zookeeper 所没有的功能,因此它失败了。
升级到 Zookeeper 3.4.8 解决了这个问题。
我正在尝试使用 Vagrant 测试 SolrCloud。我在一个盒子上安装了 Zookeeper 运行,在另一个盒子上安装了 Solr 运行。这些盒子位于专用网络上(我可以从每个盒子进入其中一个)。
当我尝试通过 Solr CLI 创建集合时,它超时了,我想是在它尝试与 Zookeeper 通信时。
Zookeeper 符合预期 运行。我使用以下命令在前台模式下启动它:
sudo bin/zkServer.sh start-foreground
我的 zoo.cfg 文件:
tickTime=2000
dataDir=/var/lib/zookeeper/1
clientPort=2181
server.1=localhost:2888:3888
然后我将在云模式下启动 Solr:
bin/solr start -c -z 172.28.128.3:2181
此时,一切似乎都很好。 Solr 日志中没有显示任何不良信息,Zookeeper 的控制台中也没有出现任何警报消息。
然后我尝试使用以下命令创建一个集合:
bin/solr create -c mycollection -d data_driven_schema_configs
然后我开始在 Solr 日志中看到很多错误,并且在 Zookeeper 中出现很多重复消息:
这两个 Solr 错误一遍又一遍:
java.io.IOException: Xid out of order. Got Xid 1299 with err 0
expected Xid 1298 for a packet with details: clientPath:null
serverPath:null finished:false header:: 1298,14 replyHeader:: 0,0,-4
request:: org.apache.zookeeper.MultiTransactionRecord@95acc4f3
response:: org.apache.zookeeper.MultiResponse@0
There was a problem trying to register as the leader:org.apache.solr.common.SolrException:
Could not register as the leader because creating the ephemeral registration
node in ZooKeeper failed
这来自 Zookeeper:
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket connection from /172.28.128.4:54548
2016-08-21 21:33:39,137 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew session 0x156aefeba2d0004 at /172.28.128.4:54548
2016-08-21 21:33:39,145 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1580] - Established session 0x156aefeba2d0004 with negotiated timeout 15000 for client /172.28.128.4:54548
2016-08-21 21:33:39,147 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@593] - Dropping packet at server of type 14
2016-08-21 21:33:39,154 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to read additional data from client sessionid 0x156aefeba2d0004, likely client has closed socket
2016-08-21 21:33:39,155 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for client /172.28.128.4:54548 which had sessionid 0x156aefeba2d0004
2016-08-21 21:33:40,698 - INFO
我不明白这是怎么回事。我觉得关键在于 Solr 错误:
Could not register as the leader because creating the ephemeral registration node in ZooKeeper failed
但是在搜索那个错误时我找不到任何有用的东西。任何人都可以阐明这里发生了什么吗?
上传solr配置文件到zookeeper试试 check here
$ sh zkcli.sh -cmd upconfig -zkhost <host:port> -confname <name for configset> -solrhome <solrhome> -confdir <path to directory with configset>
这里的问题是我使用的 Zookeeper (3.3.6) 版本与当前版本的 Solr (6.1.0) 不兼容。
Solr 试图使用该版本的 Zookeeper 所没有的功能,因此它失败了。
升级到 Zookeeper 3.4.8 解决了这个问题。