在docker集群设置中索引solr中的数据时出现问题

朋友们,

我正在做一个POC,作为其中的一部分,我必须为solr设置一个集群环境,并检查HA的angular度,也就是我们现有的工具。 我正在使用docker和使用下面的命令进行设置

docker network create --subnet 192.168.22.0/24 --ip-range=192.168.22.128/25 netzksolr #the IP address for the container ZK1_IP=192.168.22.10 ZK2_IP=192.168.22.11 ZK3_IP=192.168.22.12 # the Docker image ZK_IMAGE=jplock/zookeeper docker pull jplock/zookeeper && docker create --ip=$ZK1_IP --net netzksolr --name zk1 --hostname=zk1 --add-host zk2:$ZK2_IP --add-host zk3:$ZK3_IP -it $ZK_IMAGE docker pull jplock/zookeeper && docker create --ip=$ZK2_IP --net netzksolr --name zk2 --hostname=zk2 --add-host zk1:$ZK1_IP --add-host zk3:$ZK3_IP -it $ZK_IMAGE docker pull jplock/zookeeper && docker create --ip=$ZK3_IP --net netzksolr --name zk3 --hostname=zk3 --add-host zk1:$ZK1_IP --add-host zk2:$ZK2_IP -it $ZK_IMAGE docker cp zk1:/opt/zookeeper/conf/zoo.cfg . cat >>zoo.cfg <<EOM server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888 EOM docker cp zoo.cfg zk1:/opt/zookeeper/conf/zoo.cfg docker cp zoo.cfg zk2:/opt/zookeeper/conf/zoo.cfg docker cp zoo.cfg zk3:/opt/zookeeper/conf/zoo.cfg echo "1">myid docker cp myid zk1:/tmp/zookeeper/myid echo "2">myid docker cp myid zk2:/tmp/zookeeper/myid echo "3">myid docker cp myid zk3:/tmp/zookeeper/myid docker start zk1;sleep 10 docker start zk2;sleep 10 docker start zk3;sleep 10 docker ps ZKSOLR1_IP=192.168.22.20 ZKSOLR2_IP=192.168.22.21 ZKSOLR3_IP=192.168.22.22 SOLR_IMAGE=solr HOST_OPTIONS="--add-host zk1:$ZK1_IP --add-host zk2:$ZK2_IP --add-host zk3:$ZK3_IP " ###setup solr docker pull $SOLR_IMAGE && docker create --ip=$ZKSOLR1_IP --net netzksolr --name zksolr1 --hostname=zksolr1 -it $HOST_OPTIONS $SOLR_IMAGE docker pull $SOLR_IMAGE && docker create --ip=$ZKSOLR2_IP --net netzksolr --name zksolr2 --hostname=zksolr2 -it $HOST_OPTIONS $SOLR_IMAGE docker pull $SOLR_IMAGE && docker create --ip=$ZKSOLR3_IP --net netzksolr --name zksolr3 --hostname=zksolr3 -it $HOST_OPTIONS $SOLR_IMAGE #create solr.sh file for h in zksolr1 zksolr2 zksolr3; do docker cp zksolr1:/opt/solr/bin/solr.in.sh . sed -i -e 's/#ZK_HOST=""/ZK_HOST="zk1:2181,zk2:2181,zk3:2181"/' solr.in.sh sed -i -e 's/#*SOLR_HOST=.*/SOLR_HOST="'$h'"/' solr.in.sh mv solr.in.sh solr.in.sh-$h done docker cp solr.in.sh-zksolr1 zksolr1:/opt/solr/bin/solr.in.sh docker cp solr.in.sh-zksolr2 zksolr2:/opt/solr/bin/solr.in.sh docker cp solr.in.sh-zksolr3 zksolr3:/opt/solr/bin/solr.in.sh ###Start docker docker start zksolr1 docker start zksolr2 docker start zksolr3 docker ps ###Create data directory docker exec -i zksolr1 /bin/bash -c 'mkdir ./Data' ###Create core docker exec -i zksolr1 /opt/solr/bin/solr create_collection -c HATest -p 8983 -replicationFactor 2 -shards 2 ###Send data to solr docker cp data_file.txt zksolr1:/opt/solr/Data/ ##send schema to zoo keeper docker exec -i zk1 bin/zkCli.sh -cmd set /configs/HATest/managed-schema "`cat <mylocal location>/managed-schema`" ##validate schema docker exec -i zk1 bin/zkCli.sh -cmd get /configs/HATest/managed-schema HOSTPORT="http://zksolr1:8983/solr/HATest" DATAFILE="/opt/solr/Data/data_file.txt" #This is a file with 80,450 records; columns delimited by ",", and rows by \n SCHEMA=<contains comma separated names of variables. There are 146 variables in it> date;docker exec -i zksolr1 /bin/bash -c "curl '$HOSTPORT/update/csv?separator=%7C&fieldnames=$SCHEMA&encapsulator=%05&trim=true' -H 'Content-type:application/csv; charset=utf-8' --data-binary @$DATAFILE";date docker exec -i zksolr1 /bin/bash -c "curl '$HOSTPORT/update/csv?commit=true'" 

索引创build过程似乎从来没有完成。

 GURC02RCC74G8WN:Data amada2$ date;docker exec -i zksolr1 /bin/bash -c "curl '$HOSTPORT/update/csv?separator=%7C&fieldnames=$SCHEMA&encapsulator=%05&trim=true' -H 'Content-type:application/csv; charset=utf-8' --data-binary @$DATAFILE";date Fri Dec 30 23:01:44 IST 2016 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 3 91.4M 0 0 3 3632k 0 659 40:24:28 1:34:00 38:50:28 0^C Sat Dec 31 00:35:46 IST 2016 

看着zksolr1的日志。 我看到无尽的警告/错误说明

 2016-12-31 12:59:05.581 ERROR (qtp110456297-16) [c:HATest s:shard1 r:core_node1 x:HATest_shard1_replica2] oassManagedIndexSchema Bad version when trying to persist schema using 0 due to: org.apache.zookeeper.KeeperException$BadVersionException: KeeperErrorCode = BadVersion for /configs/HATest/managed-schema 2016-12-31 12:59:05.581 INFO (qtp110456297-16) [c:HATest s:shard1 r:core_node1 x:HATest_shard1_replica2] oassManagedIndexSchema Failed to persist managed schema at /configs/HATest/managed-schema - version mismatch 2016-12-31 12:59:05.634 ERROR (qtp110456297-16) [c:HATest s:shard1 r:core_node1 x:HATest_shard1_replica2] oassManagedIndexSchema Bad version when trying to persist schema using 0 due to: org.apache.zookeeper.KeeperException$BadVersionException: KeeperErrorCode = BadVersion for /configs/HATest/managed-schema 2016-12-31 12:59:05.634 INFO (qtp110456297-16) [c:HATest s:shard1 r:core_node1 x:HATest_shard1_replica2] oassManagedIndexSchema Failed to persist managed schema at /configs/HATest/managed-schema - version mismatch 

我查了这个错误,发现下面的链接,这只是一个警告,并且过程应该工作正常。 但是,索引我的过程都是卡住的。 https://issues.apache.org/jira/browse/SOLR-8791

我以前认为这可能是我的办公室机器的问题,所以我再次尝试在我的另一台笔记本电脑,同样的问题。 如果您能在这方面提供帮助,我将对此感到高兴。

谢谢,阿曼