公司之前做电商项目的时候,需要根据关键字来搜索商品,需要部署搜索引擎来实现。代码交付的时候发现sorl是单机版的,为了满足生产高可用的要求,于是部署sorl集群来实现。
#修改主机名, 切记主机名不能出现下划线
#修改主机名(/etc/hostname):
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
#修改 /etc/hosts 加入
vim /etc/hosts
172.16.12.17 node1
172.16.12.18 node2
172.16.12.19 node3
ssh-keygen
ssh-copy-id -i id_rsa.pub root@node.*
tar zxf /root/jdk1.8.0_101.tar.gz -C /data/
echo 'export PATH=$PATH:/data/jdk1.8.0_101/bin' >>/etc/profile
source /etc/profile
cd /root/zookeeper-3.4.10/conf
mv zoo_sample.cfg zoo.cfg
cp -r zookeeper-3.4.10 /data/zookeeper
#创建 data 文件夹 和 myid 文件
mkdir /data/zookeeper/data
mkdir /data/zookeeper/log
echo "1" >/data/zookeeper/data/myid
tickTime=2000
initLimit=15
syncLimit=5
maxClientCnxns=150
autopurge.snapRetainCount=50
autopurge.purgeInterval=24
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
clientPort=2181
server.1=node1:5000:5100
server.2=node2:5000:5100
server.3=node3:5000:5100
scp -r zookeeper/ root@node2:/data/
scp -r zookeeper/ root@node3:/data/
#node2
echo "2" >/data/zookeeper/data/myid
#node3
echo "3" >/data/zookeeper/data/myid
cd /data/zookeeper/bin
./zkServer.sh start
mkdir /data/tomcat-solr
tar zxf apache-tomcat-8.5.4.tar.gz -C /data/tomcat-solr
mv apache-tomcat-8.5.4/ tomcat
tar zxf solr-7.4.0.tgz -C /data/tomcat-solr/
#进入solr的server目录下
cd /data/tomcat-solr/solr-7.4.0/server/solr-webapp
#复制文件到Tomcat
cp -r webapp/ /data/tomcat-solr/tomcat/webapps/
#把solr的项目改名
cd /data/tomcat-solr/tomcat/webapps/
mv webapp/ solr
#创建solr_home存储Solr索引文件,这个目录用于存储Solr Core的数据及配置文件
mkdir /data/tomcat-solr/solr_home
#解压后的Solr的server目录下有一个solr目录,把这个目录里的所有内容复制到刚刚创建的solr_home目录下:
cd /data/tomcat-solr/solr-7.4.0/server/solr
cp -r * /data/tomcat-solr/solr_home/
(1)修改web.xml
#修改复制到tomcat中的Solr项目中的WEB-INF目录下的web.xml配置文件,修改solr_home路径指向我们刚刚创建的solr_home
cd /data/tomcat-solr/tomcat/webapps/solr/WEB-INF
#修改Solr_home路径
vim web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/data/tomcat-solr/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
(2)去掉安全验证
(3)复制所需依赖jar包
#复制solr-7.4.0\server\lib\ext下的所有jar包到tomcat下的webapps\solr\WEB-INF\lib目录下
cd /data/tomcat-solr/solr-7.4.0/server/lib/ext/
cp * /data/tomcat-solr/tomcat/webapps/solr/WEB-INF/lib/
#复制solr-7.4.0\server\lib下的metrics开头的5个jar到tomcat下的webapps\solr\WEB-INF\lib目录下
cd /data/tomcat-solr/solr-7.4.0/server/lib
cp metrics-* /data/tomcat-solr/tomcat/webapps/solr/WEB-INF/lib/
#复制solr-7.4.0\dist 下的solr-dataimporthandler-7.4.0.jar、solr-dataimporthandler-extras-7.4.0.jar是数据导入的时候用到,看情况导入,Solr用了这么久Solr数据导入的功能还没有用到过
cd /data/tomcat-solr/solr-7.4.0/dist/
cp solr-dataimporthandler-* /data/tomcat-solr/tomcat/webapps/solr/WEB-INF/lib
(4)修改Tomcat端口号
#修改Tomcat的端口号,改不改都行,不过最好改一下,以后如果有多个Tomcat会有端口冲突的
cd /data/tomcat-solr/tomcat/conf/
vim server.xml
#修改8080、8009端口号,Solr常用的端口号是8981,可以把8080改成8981,8009端口随意,这里改成8001
#修改solr_home目录下的solr.xml配置文件:
cd /data/tomcat-solr/solr_home/
vim solr.xml
#将主机名和端口号修改为自己的主机名和端口号, 如果主机名没有映射IP地址的话用IP地址
<str name="host">${host:node1}</str>
<int name="hostPort">${tomcat.port:8981}</int>
(5)为Tomcat分配指定内存
#为Tomcat分配指定大小的内存,修改tomcat-solr目录下的bin/catalina.sh
cd /data/tomcat-solr/tomcat/bin/
vim catalina.sh
JAVA_OPTS="-Xms2g -Xmx2g"
(6)启动Tomcat
cd /data/tomcat-solr/tomcat/bin/
sh startup.sh
1、复制安装目录至每个节点
scp -r tomcat-solr/ root@node2:/data/
scp -r tomcat-solr/ root@node3:/data/
cd /data/tomcat-solr/solr-7.4.0/server/scripts/cloud-scripts
./zkcli.sh -zkhost node1:2181,node2:2181,node3:2181 -cmd upconfig -confdir /data/tomcat-solr/solr_home/configsets/sample_techproducts_configs/conf -confname myconf
cd /data/zookeeper/bin/
./zkCli.sh
cd /data/tomcat-solr/tomcat/bin/
vim catalina.sh
JAVA_OPTS="-DzkHost=node1:2181,node2:2181,node3:2181"
cd /data/tomcat-solr/solr_home/
vim solr.xml
将主机名和端口号修改为自己的主机名和端口号
#如果主机名没有映射IP地址的话用IP地址
<str name="host">${host:node1}</str>
<int name="hostPort">${tomcat.port:8981}</int>
cd /data/tomcat-solr/tomcat/bin/
sh startup.sh
http://172.16.12.17:8981/solr/index.html#/