一、准备工作
1.系统及软件版本
系统版本:centos6.4、zookeeper版本:zookeeper-3.4.8、solr版本:solr-5.5.3
2.安装3台虚拟机
虚拟机ip 192.168.17.142,192.168.17.143,192.168.17.144
3.给每台机器安装jdk
4.创建data目录并上传zookeeper-3.4.8和solr-5.5.3至data下(每台机器均如此)
mkdir /data
二、zookeeper集群安装
1.解压zookeeper
tar -zxvf zookeeper-3.4.8.tar.gz
2.创建 data和log目录用于存放数据
mkdir zookeeper-3.4.8/data
mkdir zookeeper-3.4.8/log
3.拷贝zookeeper配制文件zoo_sample.cfg
cp conf/zoo_sample.cfg conf/zoo.cfg
4.修改配置文件 zoo.cfg
vi conf/zoo.cfg
加入如下如内容:
dataDir=/data/zookeeper-3.4.8/data dataLogDir=/data/zookeeper-3.4.8/log server.1=192.168.17.142:2888:3888 server.2=192.168.17.143:2888:3888 server.3=192.168.17.144:2888:3888
5.在zookeeper中的data下创建myid 并写入对应的数字
注意:在myid要对应,在192.168.17.142服务器上的myid 数字为1,在192.168.17.143服务器上的myid 数字为2,在192.168.17.144服务器上的myid 数字为3。这些数字可以任意 但要和zoo.cfg中的servder.数字中的数字一致。
6.开启zookeeper端口
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT
7.保存修改并重启防火墙
/etc/rc.d/init.d/iptables save #将更改进行保存
/etc/init.d/iptables restart #重启防火墙以便改动生效
8.启动zookeeper集群
进入 zookeeper中的bin目录
./zkServer.sh start
查看集群状态
./zkServer.sh status 刚启动可能会有错误,集群中其他节点一并起来后就正常了
./zkServer.sh stop 停止
./zkServer.sh restart 重启
./zkCli.sh 连接zookeeper集群
9.安装成功的结果如下 一个 leader 2个follower
三、solr集群的搭建
1.解压solr
tar -zxvf solr-5.5.3.tgz
2.修改bin下solr.in.sh文件
ZK_HOST="192.168.17.142:2181,192.168.17.143:2181,192.168.617.144:2181"
去掉 ZK_CLIENT_TIMEOUT 的注释
3.上传mysql及ik中文分词器到 /data/solr-5.5.3/server/solr-webapp/webapp/WEB-INF/lib/下中文分词器的扩展分词等配置文件 上传到 /data/solr-5.5.3/server/solr-webapp/webapp/WEB-INF/classes (classes 目录需要自己创建)
4.创建solrhome目录(用于存放上传的配置文件)及拷贝配置文件
mkdir /data/solrhome
mkdir /data/solrhome/myconf
cp -r /data/solr-5.5.3/example/example-DIH/solr/solr/conf /data/solrhome/myconf
5.修改myconf中conf下的solrconfig.xml及managed-schema 参考 这个。。。。(这里不做说明)
6.上传配置文件到zookeeper(在/data/solr-.5.3/server/scripts/cloud-scripts/zkcli.sh 同样可以上传)
进入zookeeper的bin下
./zkcli.sh -zkhost 192.168.17.142:2181,192.168.17.143:2181,192.168.17.144:2181 -cmd upconfig -confdir /data/solrhome/myconf/conf/ -confname test (上传文件夹)
-confdir:这个指的是 本地上传的文件位置
-confname:上传后在zookeeper中的节点名称
./zkcli.sh -zkhost 192.168.17.142:2181,192.168.17.143:2181,192.168.617.144:2181 -cmd putfile /configs/test/data-config.xml /data/solrhome/myconf/conf/data-config.xml (上传单个文件)
参数说明 putfile 后 第一个/configs/test/data-config.xml 指的是 zookeeper中的配置文件 , /data/solrhome/myconf/conf/data-config.xml这个是本地文件路径
注意: 单个文件上传先要删除,不然会报错。
7.zookeeper集群操作上传的文件
进入zookeeper的bin下
./zkCli.sh 连接zookeeper集群
ls /configs/myconf 查看上传的配置文件
delete /configs/myconf/solrconfig.xml 删除文件
delete /configs/myconf 删除空文件夹
get /configs/myconf/solrconfig.xml 查看文件内容
rmr /configs/myconf 递归删除(慎重使用)
8.启动solr集群
进入 solr-5.5.3下
./bin/solr restart
9.操作collection
a.创建collection
http://192.168.17.142:8983/solr/admin/collections?action=CREATE&name=test&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=myconf
b.删除
http://192.168.17.142:8983/solr/admin/collections?action=DELETE&name=test
c.重新加载
http://192.168.17.143:8983/solr/admin/collections?action=RELOAD&name=test
10.错误处理
a.创建内核时出错。错误信息中ip是 192.168.17.1
处理:修改 /data/solr-5.5.3/server/solr/solr.xml 文件 添加ip
注意:为了尽可能的减少错误,配置文件应该先在单节点的solr中测试。没问题后上传到zookeeper节点中
以上是solrcloud(jetty容器)搭建及使用实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!