solrcloud集群搭建

扯一下

老大去了其它部门以后,现在都是由我负责应用商店,浏览器,全局搜索,主题美化的业务,所以,平时写公众号的时间比较少。但是,我会坚持下去。其实,我本人在生活中的与人沟通的能力很弱,然而,我一直认为写作是一种高质量的社交,既帮助了别人,也提高了自己的逻辑思维能力,何乐而不为?

背景

最近在研究搜索推荐相关的知识,了解到solr就是为搜索而生的。万事开头难,想要深入理解solr,第一步就是要搭建solrcloud环境。下面我会详细介绍如何搭建solrcloud集群。

solrcloud集群搭建(solr版本为5.5.3)

目录

  • 目标
  • 准备工作
  • 步骤
    • 环境准备
    • 安装solr实例
    • 创建collection
    • 重启solr并且验证
  • 安装过程当中可能会出现的问题
    • 某些文件或者目录没有执行权限
    • solr更新managed-schema后,重新把配置文件注入到zookeeper
    • solr集群和数据库服务器不能在同一台服务器、
    • solr5.5.3版本不再有shema.xml文件,代替的是managed-shema文件

一 目标

两台机器,两个solr实例,创建一个collection(test2)两个切片,每个切片两个备份

二 准备工作

solr节点安装机器:2台,为:172.17.32.105;175.17.32.106

zk集群开发环境:172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181

mysql服务器:172.16.178.236

三 步骤

1.环境准备

(1).安装JDK(需1.7或以上版本)。5.以上的版本都需要JDK7或者JDK8以上才能够支持 (2).export java至系统环境变量:

修改 /etc/profile,若其没有对JDK环境变量有过定义或导出,先查找出jdk的安装路径:并替换掉下面的${你的jdk安装路
径},并将以下内容添加至文件末尾,并保存
export JAVA_HOME=${你的jdk安装路径}
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

(3).保存后使用以下命令使其立即生效

source /etc/profile

2.安装solr实例

以下命令,请在待安装solr节点的各机器上以root用户分别执行。比如说我就是在172.17.32.105和172.117.32.106这俩台服务器上执行以下的命令

(1).准备solr安装包,并放至/data/solr目录

wget http://archive.apache.org/dist/lucene/solr/5.5.3/solr-5.5.3.tgz
(2).从solr安装包中抽取出solr安装脚本
tar -zxvf /data/solr/solr-5.5.3.tgz solr-5.5.3/bin/install_solr_service.sh --strip-components=2

(3).创建solr安装目录

mkdir -p /data/solr/installed

(4).执行安装脚本,安装目录/data/solr/installed,配置文件及数据目录/data/solr,端口8983,用户组为solr(如果不存在会自动建立)

sh /data/solr/install_solr_service.sh /data/solr/solr-5.5.3.tgz -i /data/solr/installed -d
/data/solr -u solr -s solr -p 8983
(5).导入IK分词器及mysql-connector
从 http://mvnrepository.com 仓库上下载 ik-analyzer-solr5-5.3.jar和mysql-connector-java-5.1.22.jar,并将
这两个jar包上传至/data/solr/installed/solr/server/solr-webapp/webapp/WEB-INF/lib目录下。这里要提醒大家的一
点是IK分词器的版本最好和你要安装的solr的版本是一致的,否则的话,可能会出现兼容性的问题。

(6).为solr配置zk(请将$zk_host替换成实际的zk地址)

echo ZK_HOST=$zk_host/tv_solr >> /etc/default/solr.in.sh

(7).启动所有节点的solr实例

service solr start

3.创建collection

以下命令,只需在其中一台机器上执行即可

(1).为tv solr在zk上创建根节点:/tvslor (请将$zkhost替换成实际的zk地址)

sh /data/solr/installed/solr/server/scripts/cloud-scripts/zkcli.sh -zkhost "$zk_host" -cmd
makepath /tv_solr

(2).创建collection,名称为test3,共两个切片,每个切片两个备份。关于什么是collection,切片,备份以后再进行讲解

/data/solr/installed/solr/bin/solr create -c test3 -shards 2 -replicationFactor 2

正常情况下可以看到以下的输出:

Connecting to ZooKeeper at 172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181/tv_solr ...
Uploading /data/solr/installed/solr/server/solr/configsets/data_driven_schema_configs/conf for config test3 to ZooKeeper at 172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181/tv_solr

Creating new collection 'test3' using command:
http://localhost:8983/solr/admin/collections?action=CREATE&name=test3&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=test3

{
"responseHeader":{
"status":0,
"QTime":13496},
"success":{
"172.17.32.105:8983_solr":{
"responseHeader":{
"status":0,
"QTime":3541},
"core":"test3_shard2_replica1"},
"172.17.32.106:8983_solr":{
"responseHeader":{
"status":0,
"QTime":4008},
"core":"test3_shard2_replica2"}}}

4.重启solr并且验证

(1).重启所有的solr实例,使刚刚配置的collection生效

service solr restart

(2).在各节点上运行以下命令,查看solr状态

service solr status

正常情况下可以看到以下形式的输出:

[root@dev105 bin]# service solr status
Found 1 Solr nodes:
Solr process 25803 running on port 8983
{
"solr_home":"/data/solr/data",
"version":"5.5.3 8655b97b27d8da470c8235683af11a8b85a2b10f - anshum - 2016-09-01 13:05:40",
"startTime":"2018-08-31T08:48:10.456Z",
"uptime":"0 days, 22 hours, 17 minutes, 35 seconds",
"memory":"132.5 MB (%27) of 490.7 MB",
"cloud":{
"ZooKeeper":"172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181/tv_solr",
"liveNodes":"2",
"collections":"3"}}

使用以下地址登录到solr的可视化的运营界面,ip指的是solr集群中任一一台机器的ip:

http://ip:8983/solr/#/

点击运营界面下的Cloud下的Graph,可以看到以下的运营界面:

四.安装过程当中可能会出现的问题

1.某些文件或者目录没有执行权限

在执行安装脚本的时候可能会出现以下的情况:

-bash: /data/solr/installed/solr/bin/solr: Permission denied
此时不需要慌张,只需要淡定的执行以下的命令就可以了:
chmod +x /data/solr/installed/solr/bin/solr

2.solr更新managed-schema后,重新把配置文件注入到zookeeper

由于我们搭建的是solrcloud集群,当solr的配置文件发生了变化以后,在solr5.5.x以后,solr的配置文件主要在以下的目录:

/data/solr/installed/solr-5.5.3/server/solr/configsets/data_driven_schema_configs/conf/

当这个目录下的文件发生了变化的时候,我们还需要将这些变化的文件推送到zookeepr中,那么如何将这些变化的文件推送到zookeeper中呢,只需要执行以下的命令就可以了。

1. cd /data/solr/installed/solr-5.5.3/server/scripts/cloud-scripts
2. 举个简单的I例子,假如managed-schema发生了变化,执行以下的命令:
./zkcli.sh -zkhost 172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181 -cmd putfile /tv_solr/configs/test1/managed-schema /data/solr/installed/solr-5.5.3/server/solr/configsets/data_driven_schema_configs/conf/managed-schema

这个命令应该像以下这样理解:

./zkcli.sh -zkhost 172.16.190.42:2181,172.16.190.43:2181,172.16.190.44:2181 -cmd putfile /zk下的对应的配置文件路径 /本地机器上的对应的配置文件的路径

3.solr集群和数据库服务器不能在同一台服务器

这个应该是经验之谈,就是solr集群的任一机器不能和数据库服务器不能在同一台服务器上,否则在使用solr在进行搜索的时候,会出现搜索不到数据库表的数据的情况。

4.solr5.5.3版本不再有shema.xml文件,代替的是managed-shema文件

注意,使用solr5.5.3来搭建solrcloud集群的时候,网上很多教程都会出现一个叫做schema.xml的配置文件。
在这里,我要告诉你的是,solr5.5.3版本不再有shema.xml文件,代替的是managed-shema文件。
 

感谢&总结

本文主要分享了如何去搭建一个solrcloud集群。古人说,"日拱一卒无有尽 功不唐捐终入海",每天进步一点点,量变引起质变,最后,我们还是可以取得长足的进步的,共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱coding的同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值