solr是怎么调用zookeeper
发布网友
发布时间:2022-04-20 19:33
我来回答
共1个回答
热心网友
时间:2023-07-16 12:55
zookeeper配置
(1)解压为zookeepertar -xf -C /home/myuser/zookeeper/
复制zookeeper文件夹3份,分别重名名为zookeeperA,zookeeperB,zookeeperC。并且创建数据快照以及日志存放文件夹,命名为zooA,zooB,zooC。(2)编辑对应的zookeeper配置文件,复制zookeeperconf下zoo_sample.cfg为zoo.cf* /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>tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值clientPort:服务的监听端口dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。
(4)创建myid文件cd /home/myuser/zooA/data
sudo sh -c 'echo "1" >> myid'
其他文件夹类似创建myid文件,zookeeperB为2,zookeeperC为3(5)启动zookeepercd /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需要等待其他另个节点的加入,全部启动之后就正常了。(6)客户端连接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>configs:保存上传的配置文件信息clusterstate.json:集群状态jsonaliases:别名jsonlive_node:当solr服务器启动的时候,会注册到这里overseer:保存shard信息overseer_elect:节点选举collections:所有的collection
Solr及Tomcat安装配置
(1)下载solr4.2,把solr-4.2.1\example\solr\collection1\conf 目录下的配置文件上传的zookeeper(2)上传solr配置文件到zookeeperJava -classpath .:/home/weibo/tomcat_solr_/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_/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(如果目录不存在,请自行创建),内容如下<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/home/weibo/solr-/solr.war" debug="0" corssContext="false" >
<Environment name="solr/home" type="java.lang.String" value="/home/weibo/solr-/" override="true"/>
</Context>
crossContext不能设置为true,这里注意(5)在你的solr home目录创建solr.xml<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080">
</cores>
</solr>
其他tomcat对应设置对应的端口号(6)编辑tomcat bin/catalina.sh(Windows下catalina.bat),加入JAVA_OPTS='-DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381'
这里就是solr和zookeeper交互的地方了(7)依次启动tomcat,创建core及shard,访问solr