CentOS环境配置四——ZooKeeper和Solr部署
1.ZooKeeper单机部署
下载zookeeper并传输到CentOS服务器上。下载地址(3.5.5版本以后需要下载名称带bin的包,包内为编译后的文件,而不带bin的包则是源码)
# 解压到指定目录
$ tar -zxvf apache-zookeeper-3.6.2.tar.gz -C /usr/local
# 进入ZooKeeper的conf目录下将zoo_sample.cfg 复制一份并命名为 zoo.cfg
$ cd /usr/local/apache-zookeeper-3.6.2/conf
$ cp zoo_sample.cfg zoo.cfg
$ vim zoo.cfg
修改数据保存路径并添加admin.serverPort=9099
避免端口冲突 (AdminServer,默认使用8080端口)
创建data目录
$ cd /usr/local/apache-zookeeper-3.6.2
$ mkdir data
启动ZooKeeper
$ cd bin
$ ./zkServer.sh start
# 查看状态
$ ./zkServer.sh status
2.Solr单机部署
官网:Solr官网
从Solr5开始,Solr不再以war
的形式发布,Solr已然成为了一个独立的Java服务端应用,已经包括了start
和stop
脚本,并支持Unix和Windows平台。
# 下载
$ wget https://mirror.bit.edu.cn/apache/lucene/solr/8.7.0/solr-8.7.0.tgz
# 解压
$ tar -zxvf solr-8.7.0.tgz -C /usr/local
# 进入solr的bin目录下启动solr。关闭指令 $ ./solr sop
$ cd /usr/local/solr-8.7.0/bin
$ ./solr.start
提示系统可打开的文件数和进程数受限,需要将数值提升到65000来避免操作中断,同时如果使用的是root用户启动solr会有安全风险,需要加上-force
指定启动
解决:
首先将账号切换到root
可通过如下方式查看是否为root用户
$ vim checkroot.sh
复制以下代码到文件中赋予执行权限
#!/bin/bash
#检查是否是root用户
if [ $UID -ne 0 ];then
ehco Non root user. Please run as root.
else
echo "Root user"
fi
$ chmod 777 checkroot.sh
$ ./checkroot.sh
# 修改配置
$ vim /etc/security/limits.conf
# 文件末尾添加
* hard nofile 65000
* soft nofile 65000
* hard nproc 65000
* soft nproc 65000
# 保存退出
查看配置是否生效
$ ulimit -a
如果使用的是ssh连接系统进行操作的话结果仍然会显示未修改的值,但实际上配置已经生效,这个可以通过直接访问CentOS系统或者重新ssh连接系统进行查询验证。
$ ./solr start -force
浏览器输入http:你的ip地址:8983/solr
,可以正常访问后去创建分词库
./solr create -c articles -force
安装中文分词库,下载地址:点此访问。
将下载好的jar包放入Solr目录/server/solr-webapp/webapp/WEB-INF/lib
内,进入分词库文件中添加中文分词库
$ vim /usr/local/solr-8.7.0/server/solr/articles/conf/:managed-schema
添加如下代码
<!--ik-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
重启Solr
$ ./solr restart