需要准备的安装包 放到 /data/service/source
- zookeeper-3.4.10.tar.gz
- apache-tomcat-8.5.31.tar.gz
- solr-7.1.0.tgz
安装开始
mkdir /data/service/source
cd /data/service/source
tar -zxvf zookeeper-3.4.14.tar.gz
cp -r zookeeper-3.4.14 /data/service/solr-cloud/zookeeper01
cp -r zookeeper-3.4.14 /data/service/solr-cloud/zookeeper02
cp -r zookeeper-3.4.14 /data/service/solr-cloud/zookeeper03
mkdir /data/service/solr-cloud/zookeeper01/data
mkdir /data/service/solr-cloud/zookeeper02/data
mkdir /data/service/solr-cloud/zookeeper03/data
touch /data/service/solr-cloud/zookeeper01/data/myid
touch /data/service/solr-cloud/zookeeper02/data/myid
touch /data/service/solr-cloud/zookeeper03/data/myid
vim /data/service/solr-cloud/zookeeper01/data/myid
vim /data/service/solr-cloud/zookeeper02/data/myid
vim /data/service/solr-cloud/zookeeper03/data/myid
echo 1 >> /data/service/solr-cloud/zookeeper01/myid
echo 2 >> /data/service/solr-cloud/zookeeper02/myid
echo 3 >> /data/service/solr-cloud/zookeeper03/myid
cd /data/service/solr-cloud/zookeeper01/conf/
mv zoo_sample.cfg zoo.cfg
cd /data/service/solr-cloud/zookeeper02/conf/
mv zoo_sample.cfg zoo.cfg
cd /data/service/solr-cloud/zookeeper03/conf/
mv zoo_sample.cfg zoo.cfg
#修改zoo.cfg
vim /data/service/solr-cloud/zookeeper01/conf/zoo.cfg
#dataDir=/data/service/solr-cloud/zookeeper01/data
#clientPort=2001
#末尾添加 10.10.119.28 10.10.64.167 10.10.45.213
#server.1=10.10.119.28:2701:3701
#server.2=10.10.64.167:2702:3702
#server.3=10.10.45.213:2703:3703
vim /data/service/solr-cloud/zookeeper02/conf/zoo.cfg
#dataDir=/data/service/solr-cloud/zookeeper03/data
#clientPort=2002
#末尾添加
#server.1=127.0.0.1:2701:3701
#server.2=127.0.0.1:2702:3702
#server.3=127.0.0.1:2703:3703
vim /data/service/solr-cloud/zookeeper03/conf/zoo.cfg
#dataDir=/data/service/solr-cloud/zookeeper03/data
#clientPort=2003
#末尾添加
#server.1=127.0.0.1:2701:3701
#server.2=127.0.0.1:2702:3702
#server.3=127.0.0.1:2703:3703
# 分别启动zk
sh /data/service/solr-cloud/zookeeper01/bin/zkServer.sh start
sh /data/service/solr-cloud/zookeeper02/bin/zkServer.sh start
sh /data/service/solr-cloud/zookeeper03/bin/zkServer.sh start
#可以查看启动状态 以及 当前zk角色信息
sh /data/service/solr-cloud/zookeeper01/bin/zkServer.sh status
#可以把上面启动命令写成zkallstart.sh 修改权限 chmod u+x /data/service/solr-cloud/zkallstart.sh 启动不了检查 myid
#tomcat
cd /data/service/source
tar -zxvf apache-tomcat-8.5.31.tar.gz
cp -r apache-tomcat-8.5.31 /data/service/solr-cloud/tomcat01
cp -r apache-tomcat-8.5.31 /data/service/solr-cloud/tomcat02
cd /data/service/solr-cloud/
vim tomcat01/conf/server.xml
#修改端口
#<Server port="7001" shutdown="SHUTDOWN">
#<Connector port="7081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
#<Connector port="7011" protocol="AJP/1.3" redirectPort="8443" />
vim tomcat01/conf/server.xml
#修改端口
#<Server port="7002" shutdown="SHUTDOWN">
#<Connector port="7082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
#<Connector port="7012" protocol="AJP/1.3" redirectPort="8443" />
#solr
cd /data/service/source
tar -zxvf solr-7.1.0.tgz
cp -r ./solr-7.1.0/server/solr-webapp/webapp /data/service/solr-cloud/tomcat01/webapps/
cp -r ./solr-7.1.0/server/solr-webapp/webapp /data/service/solr-cloud/tomcat02/webapps/
cd /data/service/solr-cloud/tomcat01/webapps/
mv webapp solr
cd /data/service/solr-cloud/tomcat02/webapps/
mv webapp solr
cd /data/service/solr-cloud/
mkdir solrhome01
mkdir solrhome02
cp -r /data/service/source/solr-7.1.0/server/solr/* /data/service/solr-cloud/solrhome01/
cp -r /data/service/source/solr-7.1.0/dist /data/service/solr-cloud/solrhome01/
cp -r /data/service/source/solr-7.1.0/contrib /data/service/solr-cloud/solrhome01/
cp -r /data/service/source/solr-7.1.0/server/solr/* /data/service/solr-cloud/solrhome02/
cp -r /data/service/source/solr-7.1.0/dist /data/service/solr-cloud/solrhome02/
cp -r /data/service/source/solr-7.1.0/contrib /data/service/solr-cloud/solrhome02/
vim /data/service/solr-cloud/solrhome01/solr.xml
#<str name="host">127.0.0.1</str>
#<int name="hostPort">7081</int>
vim /data/service/solr-cloud/solrhome02/solr.xml
#<str name="host">127.0.0.1</str>
#<int name="hostPort">7082</int>
vim /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/web.xml
#1.在web-app节点中添加
#<env-entry> <env-entry-name>solr/home</env-entry-name>
#<env-entry-value>/data/service/solr-cloud/solrhome01</env-entry-value>
#<env-entry-type>java.lang.String</env-entry-type> </env-entry>
#2.注释掉最下方 <security-constraint> </security-constraint>
<env-entry> <env-entry-name>solr/home</env-entry-name>
<env-entry-value>/data/service/solr-cloud/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type> </env-entry>
vim /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/web.xml
#1.在web-app节点中添加
#<env-entry> <env-entry-name>solr/home</env-entry-name>
#<env-entry-value>/data/service/solr-cloud/solrhome02</env-entry-value>
#<env-entry-type>java.lang.String</env-entry-type> </env-entry>
#2.注释掉最下方 <security-constraint> </security-constraint>
#其他solr jar 及配置 待导入
cd /data/service/source/solr-7.1.0
mkdir /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/classes
mkdir /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/classes
cp -r ./server/resources/log4j.properties /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/classes/
cp -r ./server/resources/log4j.properties /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/classes/
vim /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/classes/log4j.properties
#修改 solr log 带下 和 位置 /data/service/solr-cloud/solrhome/log/out.log /data/service/solr-cloud/solrhome/log/solr.log
#solr.log=/data/service/solr-cloud/solrhome01/log/out.log
#log4j.appender.file.MaxFileSize=32MB
#log4j.appender.file.File=/data/service/solr-cloud/solrhome01/log/solr.log
vim /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/classes/log4j.properties
#修改 solr log 带下 和 位置
#solr.log=/data/service/solr-cloud/solrhome02/log/out.log
#log4j.appender.file.MaxFileSize=32MB
#log4j.appender.file.File=/data/service/solr-cloud/solrhome02/log/solr.log
cp -r ./server/lib/ext/* /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/lib/
cp -r ./server/lib/metrics* /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/lib/
cp -r ./dist/solr-dataimporthandler* /data/service/solr-cloud/tomcat01/webapps/solr/WEB-INF/lib/
cp -r ./server/lib/ext/* /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/lib/
cp -r ./server/lib/metrics* /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/lib/
cp -r ./dist/solr-dataimporthandler* /data/service/solr-cloud/tomcat02/webapps/solr/WEB-INF/lib/
#上传 conf 到zk
cd /data/service/source/solr-7.1.0/server/scripts/cloud-scripts/
#执行 zkcli.sh 要注意,在执行脚本上传配置文件前,必须先去启动zookeeper集群
./zkcli.sh -zkhost 127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003 -cmd upconfig -confdir /data/service/solr-cloud/solrhome01/configsets/sample_techproducts_configs/conf -confname myconf
#检测 myconf 是否上传成功
cd /data/service/solr-cloud/zookeeper01/bin/
./zkCli.sh -server 127.0.0.1:2001
ls /configs
# 查看是够存在 myconf
# 如果你需要修改配置的话,只用在刚才那个conf目录里改好,改好后再上传一次就行了,就会覆盖原来的配置文件
#关联 tomcat zk
cd /data/service/solr-cloud/tomcat01/bin/
vim catalina.sh
#line 289 在这句话的下面 Make the umask available when using the org.apache.catalina.security.SecurityListener 修改 JAVA_OPTS
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`
-DzkHost=127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003"
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`
-DzkHost=10.10.119.28:2001,10.10.64.167:2002,10.10.45.213:2003"
10.10.119.28 10.10.64.167 10.10.45.213
#启动tomcat
sh /data/service/solr-cloud/tomcat01/bin/startup.sh
sh /data/service/solr-cloud/tomcat02/bin/startup.sh
#这里说个小知识点,tomcat8开始,默认启动的是NIO模式,7默认启动的是BIO模式,还可以通过配置设置APR模式启动,至于APR,NIO和BIO的区别,是和tomcat并发性能有关的,高并发的系统应该将tomcat的模式设置成APR模式,会大幅度的提高服务器的处理和响应性能。感兴趣的可以自己百度下。当然这个不用在意,跟本文集群搭建没啥关系,就是想到了说一下。
# 请求地址 http://127.0.0.1:7081/solr/index.html#/
#集群的 分词器
#1.按照单机部署的模式 记得重启tomcat
#集群的 DIH
#1.与单机版本不同的是 这里没有core的概念 需要填写collection
#.zk/conf/solrconfig.xml 中的 lib 路径问题 不能像单机一样写成绝对路径,这里需要写相对路径
#<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
#集群的 自动同步
cd /data/service/source/solr-7.1.0/server/scripts/cloud-scripts/
./zkcli.sh -zkhost 127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003 -cmd upconfig -confdir /data/service/solr-cloud/conf -confname myconf
./tomcat01/bin/shutdown.sh
./tomcat02/bin/shutdown.sh
./tomcat01/bin/startup.sh
./tomcat02/bin/startup.sh
./zkcli.sh -zkhost 10.10.119.28:2001,10.10.64.167:2002,10.10.45.213:2003 -cmd upconfig -confdir /data/service/solr-cloud/collcetConf -confname collcetConf
./zkcli.sh -zkhost 10.10.119.28:2001,10.10.64.167:2002,10.10.45.213:2003 -cmd upconfig -confdir /data/service/solr-cloud/contentConf -confname contentConf
./zkcli.sh -zkhost 10.10.119.28:2001,10.10.64.167:2002,10.10.45.213:2003 -cmd upconfig -confdir /data/service/solr-cloud/drugConf -confname drugConf
4号机器 报废
2号机器 报废
#增量定时倒入
#1. 在web.xml <web-app>节点中 添加
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>
#2. 倒入solr-dataimports 相关jar 上面已经做了
#3. 配置 dataimport.properties 放入 solrhome