linux 下的solr6.6.1+zookeeper+tomcat的搭建
1、win下也有一个,不是特别详细,参考即可
https://blog.****.net/zh_9590/article/details/79913284
2、本文主要讲解linux下的搭建
先说说准备环境:
系统是ubuntu,
java的jdk是 1.8
安装主要目录是: /app/solrcloud
先说说版本的选择问题:
solr6的选择没有什么说法,tomcat的选择暂时没有说法的,但是还是建议选择8为好,
主要说说zk的版本选择了,因为solr的版本比较高了,solr是有自带的zk的,所以原先自己学习搭建的时候,很少有说版本问题的,导致几次的尝试都是失败的,最明显的就是超时问题 ,time out ,查找了很多资料与教程也没有找到相关的,,最后看到了全英文的问题解析,才发现了问题,参考的网址:http://lucene.472066.n3.nabble.com/SolrCloud-Collection-creation-failed-due-to-timeout-td4292728.html 建议就是zk的选择要高于solr自带的。
开始搭建:
zookeeper的伪集群的搭建:
先创建zk的目录: /app/solrcloud/zookeeper
拷贝zookeeper的文件进去,创建文件 zk1,并将压缩包拷贝进去。
创建 /app/solrcloud/zookeeper/zk1/data 进入data文件夹下,执行 vi myid,添加内容 1
回到上级目录,加压文件, tar -zxvf zookeeper-3.4.8.tar.gz
进入zk配置文件修改:cd zookeeper-3.4.8/conf/
复制 cp zoo_sample.cfg zoo.cfg
编辑文件: vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/app/solrcloud/zookeeper/zk1/data
clientPort=2181
server.1=192.168.1.125:2188:3188
server.2=192.168.1.125:2288:3288
server.3=192.168.1.125:2388:3388
返回到目录: cd /app/solrcloud/zookeeper/ 目录当前信息:
执行命令: cp -r zk1 zk2 cp -r zk1 zk3
修改:每份对应的修改为
zk2:
data文件下的myid内容为2
dataDir=/app/solrcloud/zookeeper/zk2/data
clientPort=2182
zk3:
data文件下的myid内容为3
dataDir=/app/solrcloud/zookeeper/zk3/data
clientPort=2183
启动zk服务:
一次进入每一个zk1~3下执行: sh zookeeper-3.3.6/bin/zkServer.sh start
查看状态一样, sh zookeeper-3.3.6/bin/zkServer.sh status
最终结果 ,一个leader,两个follower
solrcloud的集群搭建
进入目录:/app/solrcloud
解压solr6的压缩包和tomcat8的。
tar -zxvf apache-tomcat-8.5.23.tar.gz
tar -zxvf solr-6.6.1.tgz
创建目录: mkdir solrconf (solr的配置文件)
拷贝文件:
cp -r solr-6.6.1/server/solr/configsets/basic_configs/conf/* solrconf/
创建目录:mkdir solrhome1
拷贝文件:
cp -r solr-6.6.1/server/solr/* solrhome1/
复制文件:
cp -r apache-tomcat-8.5.23 tomcat1
将solr部署都tomcat,
solr-6.6.1\server\solr-webapp ,拷贝到tomcat/webapp下,修改名称为solr
拷贝jar包:(拷贝到solr\WEB-INF\lib)
solr-6.6.1\dist:solr-dataimporthandler开头的两个,
solr-6.6.1\server\lib\ext:所有的jar
solr-6.6.1\server\lib: metrics开头的jar
用到的命令:
mkdir tomcat1/webapps/solr
cp -r solr-6.6.1/server/solr-webapp/webapp/* tomcat1/webapps/solr/
cp solr-6.6.1/dist/solr-dataimporthandler-* tomcat1/webapps/solr/WEB-INF/lib/
cp solr-6.6.1/server/lib/metrics-* tomcat1/webapps/solr/WEB-INF/lib/
cp solr-6.6.1/server/lib/ext/* tomcat1/webapps/solr/WEB-INF/lib/
solr-6.6.1\server\solr-webapp\webapp\WEB-INF 修改web.xml文件
vi tomcat1/webapps/solr/WEB-INF/web.xml
配置solrhome的路径,
修改为:
注释掉权限:
删除多余的压缩包和解压开的文件,将solrhome1复制两份,solrhome2、solrhome3,。tomcat也是一样,tomcat2、tomcat3。当前目录结构:
端口号配置
tomcat1 8983
tomcat2 8984
tomcat3 8985
依次修改solrhome*中的solr.xml文件,对应tomcat的端口号
依次修改tomcat*中的3个文件,
tomcat*/webapps/solr/WEB-INF/web.xml 指定对应的solrhome*的位置
tomcat1/conf/server.xml 修改端口号,这份文件需要修改端口号,争取三个tomcat的各个端口都是不一样的,一份文件5个地方
tomcat1/bin/catalina.sh 加入 JAVA_OPTS='-DzkHost=192.168.1.125:2181,192.168.1.125:2182,192.168.1.125:2183'
依次启动tomcat。
启动过程可能有点慢,需要等待会。
将solrconf的文件上传到zookeeper
进入目录: cd solr-6.6.1/server/scripts/cloud-scripts/
执行命令:
sh zkcli.sh -zkhost 192.168.1.125:2181,192.168.1.125:2182,192.168.1.125:2183 -cmd upconfig -confdir /app/solrcloud/solrconf -confname solrconf
访问界面:http://xx.xx.xx.xx:8983/solr/index.html
创建collection,通过请求创建:
创建
http://xx.xx.xx.xx:8983/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=solrconfig
重新加载接口
http://xx.xx.xx.xx:8983/solr/admin/collections?action=RELOAD&name=collection1
删除
http://xx.xx.xx.xx:8983/solr/admin/collections?action=DELETE&name=collection1
界面效果:
这就完事了,java调用可以参考 https://blog.****.net/zh_9590/article/details/79913284 最后的内容
有什么问题欢迎提出,
由于版本问题导致我搭建了好多次,最终告诫:
当完全操作正确还是有问题的时候,建议查看版本,升级版本或者降低版本。
如有转载,标出出处,谢谢合作!!!!