之前由于在项目中使用的solr3.6,服务器总是莫名其妙的挂掉,各种解决未果,于是尝试换到solr4,想试试solrcloud和zookeeper集群看看效果怎么样,实际效果比3.6稳定很多,下面说一下项目中我们的具体现在一个测试的配置。 我们配置3台zookper服务器和3台solr服务器,由于没有多台机器测试,zookeeper的集群都在一台服务器上,tomcat部署在3台服务器上。
tar -xf -C /home/myuser/zookeeper/
cd /home/myuser/zookeeperA/conf
cp zoo_sample.cfg zoo.cfg
(3)修改zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/myuser/zooA/data
# the port at which the clients will connect
clientPort=2181
# ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating 'myid' file in the dataDir # use hostname instead of IP address for convenient maintenance
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2988:3988
server.3=127.0.0.1:2088:3088
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
dataLogDir=/home/myuser/zooA/log
tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
cd /home/myuser/zooA/data
sudo sh -c 'echo "1" >> myid'
其他文件夹类似创建myid文件,zookeeperB为2,zookeeperC为3
cd /home/myuser/zookeeperA/bin
sudo sh zkServer.sh start
查看zookeeper状态
[root@weibo bin]# sh zkServer.sh status
JMX enabled by default
Using config: /home/weibo/zookeeperA/bin/../conf/zoo.cfg
Mode: follower
启动OK,依次启动另外两台zookeeper,启动第一台zookeeper后,你可以观察bin下的zookeeper.out可以看到报错,connection refused,没有关系,zookeeper需要等待其他另个节点的加入,全部启动之后就正常了。
[root@weibo bin]# sh zkCli.sh
Connecting to localhost:2181
2013-05-10 15:00:25,363 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
2013-05-10 15:00:25,369 [myid:] - INFO [main:Environment@100] - Client environment:host.name=localhost
2013-05-10 15:00:25,370 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.6.0_33
2013-05-10 15:00:25,371 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Sun Microsystems Inc.
2013-05-10 15:00:25,372 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/home/weibo/jdk1.6.0_33/jre
2013-05-10 15:00:25,373 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/home/weibo/zookeeperA/bin/../build/classes:/home/weibo/zookeeperA/bin/../build/lib/*.jar:/home/weibo/zookeeperA/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/weibo/zookeeperA/bin/../lib/slf4j-api-1.6.1.jar:/home/weibo/zookeeperA/bin/../lib/netty-3.2.2.Final.jar:/home/weibo/zookeeperA/bin/../lib/log4j-1.2.15.jar:/home/weibo/zookeeperA/bin/../lib/jline-0.9.94.jar:/home/weibo/zookeeperA/bin/../zookeeper-3.4.5.jar:/home/weibo/zookeeperA/bin/../src/java/lib/*.jar:/home/weibo/zookeeperA/bin/../conf:/home/weibo/jdk1.6.0_33/lib:.
2013-05-10 15:00:25,373 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/home/weibo/jdk1.6.0_33/jre/lib/amd64/server:/home/weibo/jdk1.6.0_33/jre/lib/amd64:/home/weibo/jdk1.6.0_33/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2013-05-10 15:00:25,374 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2013-05-10 15:00:25,375 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=
2013-05-10 15:00:25,375 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2013-05-10 15:00:25,376 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2013-05-10 15:00:25,377 [myid:] - INFO [main:Environment@100] - Client environment:os.version=2.6.32-279.5.2.el6.x86_64
2013-05-10 15:00:25,377 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2013-05-10 15:00:25,378 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2013-05-10 15:00:25,379 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/weibo/zookeeperA/bin
2013-05-10 15:00:25,382 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@9d04653
Welcome to ZooKeeper!
2013-05-10 15:00:25,604 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (无法定位登录配置)
JLine support is enabled
2013-05-10 15:00:25,649 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@849] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2013-05-10 15:00:25,842 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x13e7e067764005d, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[configs, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections]
[zk: localhost:2181(CONNECTED) 1]
configs:保存上传的配置文件信息
java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381 -confdir /home/weibo/solr-config -confname weiboconfig
(3)把配置文件和目标collection联系起来
java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection weibocollection -confname weiboconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381
(4)复制3个tomcat,在conf/Catalina/localhost创建solr.xml(如果目录不存在,请自行创建),内容如下
crossContext不能设置为true,这里注意
其他tomcat对应设置对应的端口号
JAVA_OPTS='-DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381'
http://localhost:8080/solr/admin/collections?action=CREATE&name=weibocollection&numShards=3&replicationFactor=1
http://localhost:8080/solr/admin/collections?action=CREATE&name=weibocollection&numShards=3&replicationFactor=3&maxShardsPerNode=3
由于solr4.2会自动创建replication,所以这里不用手动去创建replication了已经。