阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下部署SolrCloud

385次阅读
没有评论

共计 5286 个字符,预计需要花费 14 分钟才能阅读完成。

1. 准备工作

这里我只是把我的师兄教我的关于 SolrCloud 搭建的过程,以及需要注意的地方文档化了。感谢他教会了我很多。

1. 机子 IP

三台安装 linux 系统的机子的 IP 地址为:

  • 172.24.133.11
  • 172.24.133.21
  • 172.24.133.31

2. 软件版本

  • 使用的 tomcat 的版本是:apache-tomcat-8.0.26
  • 使用的 solr 的版本是:solr-5.3.0
  • 使用的 zookeeper 的版本是:zookeeper-3.4.6

3. 软件解压目录

tomcat、zookeeper 已经 solr 的解压后放置的目录为:/usr/local/apache/,如下图所示:

Linux 下部署 SolrCloud

 

2. solr 部署到 tomcat

1. 找到 solr 工程

solr 实际上是一个 web 服务,所以我们需要将 solr 部署到 tomcat 下。我们需要找到 solr.war 这个文件。solr 不同版本之间 solr.war 的目录是不同的。为了方便展示目录,使用 win7 下的目录结构,相对路径和 linux 上是一样的。

在 win7 的 D 盘目录下有 solr5.2.1 的解压包,如下图是 solr5.2.1 下 solr.war 所在的目录:

Linux 下部署 SolrCloud

我们需要将这个 solr.war 解压出来,例如:

Linux 下部署 SolrCloud

如果是 solr5.3.0 那么我们是找不到 solr.war 的,但是我们能够找到 webapp,我们要做的就是将这个文件夹重命名为 solr 即可。

拥有文件夹 solr 之后我们需要做的事情是复制必要的 jar 包到这个文件夹中,具体的操作如下:找到如下的 jar 包

Linux 下部署 SolrCloud

将这些 jar 包复制到

Linux 下部署 SolrCloud

还需要复制 log4j.properties 文件到 solr 工程,具体目录如下:

Linux 下部署 SolrCloud

将 log4j.properties 复制到如下目录:

Linux 下部署 SolrCloud

2. 拷贝 solr 工程到 tomcat

好吧,现在我们需要将 solr 这个文件放置到 tomcat 下,具体的目录如下所示:

Linux 下部署 SolrCloud

在 linux 上的目录结构也是一样的。最后 solr 要存放到 tomcat 目录下即可:

Linux 下部署 SolrCloud

3. 建立 solrhome 文件夹

solrhome 文件夹是用于存放 solr 的索引的,也就是全文检索的数据。solrhome 这个文件夹需要自己手动创建,位置可以任意并且名称是任意的。例如:

Linux 下部署 SolrCloud

你需要在 solr5.3.0 里边找到以下两个文件并复制到 multicore 文件夹下:

Linux 下部署 SolrCloud

Linux 下部署 SolrCloud

4. 修改 solr 工程的 web.xml

虽然放置索引的位置已经找到,但是需要告诉 solr 项目,solrhome 的目录在哪里,要不然它就找不到了。

Linux 下部署 SolrCloud

linux 下使用的代码:

Linux 下部署 SolrCloud

修改 web.xml 文件中的如下红框中内容:

Linux 下部署 SolrCloud

注意得要把注释的给去除:

Linux 下部署 SolrCloud

启动 tomcat 输入地址 localhost:8080/solr,能够看到如下的界面,说明你成功了:

Linux 下部署 SolrCloud

如果你需要部署 zookeeper 集群那么你还需要进行如下的操作:

修改 solrhome 中的 solr.xml 文件,本文使用的路径为:/solr/solrhome/multicore/。添加或修改 solr.xml 文件中的内容:

Linux 下部署 SolrCloud

3. zookeeper

通过上面的介绍你已经成功将 solr 部署到 tomcat 上了,但是往往需要使用 zookeeper 配合 solr 一起使用。简单讲 zookeeper 可以很好的管理 solr 服务器中的数据,可以让多个 solr 服务器中的数据保持同步。分别在那三台 linux 系统中部署 zookeeper。

1. 修改 zoo.cfg 文件中的配置

找到 zoo_sample.cfg 文件,重命名为:zoo.cfg,或者复制一份然后重命名为 zoo.cfg。

Linux 下部署 SolrCloud

按照一下所示对 zoo.cfg 文件进行添加或修改参数:

Linux 下部署 SolrCloud

server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器,最好是使用本机 ip 地址的后几位数字,这样不易重复;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。

tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,data 目录得要自己创建,具体操作看下一步

clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

2. 建立 data 目录

建立 data 目录用于存放 zookeeper 的数据,例如:

Linux 下部署 SolrCloud

在 data 文件夹中建立 myid 文件。

Linux 下部署 SolrCloud

myid 中的值必须与 server.A=B:C:D 中的 A 是一样的。根据 zoo.cfg 中胡配置信息。

server.11=172.24.133.11:6888:8888

server.21=172.24.133.21:6888:8888

server.31=172.24.133.31:6888:8888

myid 在 172.24.133.11 这个机子上的值为 11;myid 在 172.24.133.21 这个机子上的值为 21;myid 在 172.24.133.31 这个机子上的值为 31

实际上 zookeeper 集群的配置也只有 myid 中的内容是不一样的,它的作用就是用于表示不同的 zookeeper 的机子。

4. 上传 schema.xml 和 solrconfig.xml

首先需要在任意的目录构建一个,比如:

Linux 下部署 SolrCloud

schema.xml 里边定义了 solr 服务器中的索引;solrconfig.xml 则是 solr 的相关配置;其他的文件里边是没有内容的,只要创建就好。

我的配置文件下载

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是 www.linuxidc.com

具体下载目录在 /2015 年资料 / 9 月 /17 日 /Linux 下部署 SolrCloud/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

上传 E:\111\schemaless_search\conf 中内容到 /configs/solrcloud/schemaless_search。

public static void main(String[] args) throws Exception {// TODO Auto-generated method stub

// zookeeperIP 地址和端口号 

String zkServerAddress = "127.0.0.1:2181";

String schemeless = "schemaless_search";

// E:\111\schemaless_search\conf

File config = new File("E:/111/" + schemeless + "/conf");

System.out.println(config.exists());

SolrZkClient client = new SolrZkClient(zkServerAddress, 1000, 1000, new OnReconnect() {

@Override

public void command() {}

});

ZkConfigManager configManager = new ZkConfigManager(client);

// 默认添加路径:/configs 云端目录为:/configs/solrcloud/schemaless_search

configManager.uploadConfigDir(Paths.get("E:/111/" + schemeless + "/conf"), "solrcloud/" + schemeless);

client.close();

System.out.println(" 结束 ");

}

使索引生效:

public static void main(String[] args) throws Exception {// TODO Auto-generated method stub
        String collectionName = "schemaless_search";
        // solr 服务器的 IP
        CloudSolrClient client = new CloudSolrClient("172.24.133.13");
        CollectionAdminRequest.Delete delete = new CollectionAdminRequest.Delete();
        // 如果存在 schemaless_search 文件夹则先删除 
        delete.setCollectionName(collectionName);
        CollectionAdminResponse response;
        try {response = delete.process(client);
            System.out.println(response);
        } catch (Exception e) {e.printStackTrace();
        }
        
        CollectionAdminRequest.Create create = new CollectionAdminRequest.Create();
        create.setCollectionName(collectionName);
        // 目录 /configs/solrcloud/schemaless_search 下找到文件并加载 
        create.setConfigName("solrcloud/" + collectionName);
        create.setNumShards(2);
        create.setMaxShardsPerNode(2);
        create.setReplicationFactor(2);
        response = create.process(client);
        client.close();}

到目前为止所有的配置都完成了,访问 solr 服务器的可以看到下图。

Linux 下部署 SolrCloud

 

2015-09-17   20:36:22

Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm

基于 Tomcat 的 Solr3.5 集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm

在 Linux 上使用 Nginx 为 Solr 集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm

Linux 下安装使用 Solr http://www.linuxidc.com/Linux/2012-10/72029.htm

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm

基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm

Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm

Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm

Solr 的详细介绍 :请点这里
Solr 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-09/123212.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5286字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7965014
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...