solrCloud 4.9 分布式集群部署及注意事项

2024-01-09 19:58

本文主要是介绍solrCloud 4.9 分布式集群部署及注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


环境搭建

一.zookeeper

参考:http://blog.chinaunix.NET/uid-25135004-id-4214399.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
现有4台机器 10.14.2.201 10.14.2.202 10.14.2.203 10.14.2.204
安装zookeeper集群
  
在所有机器上进行
1、下载安装包解压
  tar xvf zookeeper-3.4.5.tar.gz  -C /export/
  cd /export/
  ln -s zookeeper-3.4.5 zookeeper
2、设置环境变量
  vim /etc/profile
#Set ZooKeeper Enviroment
export ZOOKEEPER_HOME=/export/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
3、加载环境变量
  source   /etc/profile
4、配置zookeeper
cd /export/zookeeper/conf
cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/zookeeper/data
dataLogDir=/export/zookeeper/log
clientPort=2181
server.1=10.14.2.201:2888:3888
server.2=10.14.2.202:2888:3888
server.3=10.14.2.203:2888:3888
server.4=10.14.2.204:2888:3888
5、dataDir和日志目录dataLogDir
mkdir -p /export/zookeeper/data
mkdir -p /export/zookeeper/log
6、在10.14.2.201上
在dataDir目录下创建myid文件
echo 1 > /export/zookeeper/data/myid
myid中的数字与zoo.cfg中的 "server.数字=ip或者域名:port1:port2" 相对应,
配置文件中10.14.2.201对应的server.数字是1 所以myid的数字应为1
7、在10.14.2.202上
在dataDir目录下创建myid文件
echo 2 > /export/zookeeper/data/myid
8、在10.14.2.203上
在dataDir目录下创建myid文件
echo 3 > /export/zookeeper/data/myid
9、在10.14.2.204上
在dataDir目录下创建myid文件
echo 4 > /export/zookeeper/data/myid
在所用机器上执行
10、修改权限
chown hadoop.hadoop -R /export/zookeeper/
chown hadoop.hadoop -R /export/zookeeper
11、启动zookeeper
/export/zookeeper/bin/zkServer.sh start
12、观察zookeeper状态
    1> 10.14.2.201
    # /export/zookeeper/bin/zkServer.sh status
    JMX enabled  by  default
    Using config: /export/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    2> 10.14.2.202
    # /export/zookeeper/bin/zkServer.sh status
    JMX enabled  by  default
    Using config: /export/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
  
    3> 10.14.2.203
    # /export/zookeeper/bin/zkServer.sh status
   JMX enabled  by  default
   Using config: /export/zookeeper/bin/../conf/zoo.cfg
   Mode: leader
  
    4> 10.14.2.204
    # /export/zookeeper/bin/zkServer.sh status
    JMX enabled  by  default
    Using config: /export/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    
13、此时zookeeper已安装并启动完毕

  

二.solrCloud

参考:http://lucien-zzy.iteye.com/blog/2002463

1.安装tomcat,配置端口。部署solr.war,将solr\example\lib\ext下的jar拷贝到solr\WEB-INF\lib下。

2.创建

/home/solr/solrcloud

/home/solr/solrcloud/config-files (放置solr\example\solr\collection1\conf 下的所有文件)

/home/solr/solrcloud/solr-lib (放置solr\WEB-INF\lib下的所有jar包)

3.配置中文分词器

4.创建solr数据目录

/home/solr/solr-cores

生成solr.xml,如下:

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<logging enabled="true">
<watcher size="100" threshold="INFO" />
</logging>
<cores defaultCoreName="collection1" adminPath="/admin/cores" host="${host:}" hostPort="8080" hostContext="${hostContext:solr}" zkClientTimeout="${zkClientTimeout:15000}">
</cores>
</solr>
复制代码

5.创建

tomcat/conf/Catalina

tomcat/conf/Catalina/localhost

并创建solr.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/soft/apache-tomcat-7.0.37/webapps/solr" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/home/solr/solr-cores" override="true"/>
</Context>

docBase根据实际情况配置;

solr/home为之前创建的目录:/home/solr/solr-cores

6.修改tomcat/bin/cataina.sh 文件,在最上方加入:JAVA_OPTS="-DzkHost=master:2181,slave1:2181,slave2:2181",或直接使用ip。

将以上配置发布到集群其他机器上。

7.SolrCloud是通过ZooKeeper集群来保证配置文件的变更及时同步到各个节点上,所以,需要将配置文件上传到ZooKeeper集群中。执行如下操作:

java -classpath .:/home/solr/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.91.128:2181,192.168.91.129:2181,192.168.91.130:2181 -confdir /home/solr/solrcloud/config-files/ -confname myconf  

-cmd upconfig:上传配置文件

-confdir:配置文件的目录

-confname:指定对应的名称

java -classpath .:/home/solr/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection1 -confname myconf -zkhost 192.168.91.128:2181,192.168.91.129:2181,192.168.91.130:2181

-cmd linkconfig:为指定collection"绑定"配置文件

-collection

-confname

8.检查zookeeper的配置信息

zkCli.sh -server ip:port

ls /configs/myconf

ls /live_nodes

9.启动tomcat,创建collection

curl 'http://192.168.91.128:8080/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=1'

action:CREATE

name:collection名称

numShards:分片数量

replicationFactor:副本集数量

也可以通过zk查询collection的情况:ls /collections/mycollection

 

-------------------------------

1.ZK CLI

ZooKeeper's Command Line Utility (CLI).

zkcli Parameters

Short

Parameter Usage

Meaning

 

-cmd <arg>

CLI Command to be executed: bootstrapupconfigdownconfiglinkconfigmakepathgetgetfileput,putfilelist or clear
This parameter is mandatory

-z

-zkhost <locations>

ZooKeeper host address. 
This parameter is mandatory for all CLI commands.

-c

-collection <name>

For linkconfig: name of the collection.

-d

-confdir <path>

For upconfig: a directory of configuration files.

-h

-help

Display help text.

-n

-confname <arg>

For upconfiglinkconfig: name of the configuration set.

-r

-runzk <port>

Run ZooKeeper internally by passing the Solr run port; only for clusters on one machine.

-s

-solrhome <path>

For bootstrap or when using -runzk: the mandatory solrhome location.

ZooKeeper CLI Examples

Below are some examples of using the zkcli CLI:
Uploading a Configuration Directory

java -classpath example/solr-webapp/WEB-INF/lib/*
org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:9983
-confdir example/solr/collection1/conf -confname conf1 -solrhome example/solr

Put arbitrary data into a new ZK file

java -classpath example/solr-webapp/WEB-INF/lib/*
org.apache.solr.cloud.ZkCLI -zkhost 127.0.0.1:9983 -put /data.txt 'some data'

Put a local file into a new ZK file

java -classpath example/solr-webapp/WEB-INF/lib/*
org.apache.solr.cloud.ZkCLI -zkhost 127.0.0.1:9983 -putfile /data.txt /some/local/file.txt

Linking a Collection to a Configuration Set

java -classpath example/solr-webapp/webapp/WEB-INF/lib/*
org.apache.solr.cloud.ZkCLI -cmd linkconfig -zkhost 127.0.0.1:9983
-collection collection1 -confname conf1 -solrhome example/solr

Bootstrapping All the Configuration Directories in solr.xml

java -classpath example/solr-webapp/webapp/WEB-INF/lib/*
org.apache.solr.cloud.ZkCLI -cmd bootstrap -zkhost 127.0.0.1:9983
-solrhome example/solr

Scripts

There are scripts in example/cloud-scripts that handle the classpath and class name for you if you are using Solr out of the box with Jetty. Commands then become:

sh zkcli.sh -cmd linkconfig -zkhost 127.0.0.1:9983
-collection collection1 -confname conf1 -solrhome example/solr

 

2.Managing collections via the collections API

CREATE---

http://localhost:8983/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=4

name:collection的名称

numShards:指定分片数量(slices)

replicationFactor:副本数量

maxShardsPerNode:默认值为1,注意三个数值:numShards、replicationFactor、liveSolrNode,一个正常的solrCloud集群不容许同一个liveSolrNode上部署同一个shard的多个replic,因此当maxShardsPerNode=1时,numShards*replicationFactor>liveSolrNode时,报错。因此正确时因满足以下条件:
numShards*replicationFactor<liveSolrNode*maxShardsPerNode

createNodeSet:

collection.configName:指定该collection使用那份config,这份config必须存在于zk中。

DELETE---

http://localhost:8983/solr/admin/collections?action=DELETE&name=mycollection

RELOAD---

http://localhost:8983/solr/admin/collections?action=RELOAD&name=mycollection

SPLIT SHARD---

http://localhost:8983/solr/admin/collections?action=SPLITSHARD&collection=<collection_name>&shard=shardId

 

3.Creating cores via CoreAdmin

curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=mycore&collection=collection1&shard=shard2'

 

 

-------------------------------

Q1:Multiple schemas in the same SolrCloud ?

java -classpath .:/home/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 10.200.51.190:2224,10.200.51.192:2224,10.200.51.194:2224 -confdir /home/solrcloud/fox-config-files/ -confname foxconf

指定配置文件,上传到zk。

curl 'http://10.200.51.194:2223/solr/admin/collections?action=CREATE&name=fox4&numShards=1&replicationFactor=5&collection.configName=foxconf'

为创建的collection指定collection.configName。

文章来源:http://blog.csdn.net/guochunyang/article/details/49181759

这篇关于solrCloud 4.9 分布式集群部署及注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/588267

相关文章

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr