solr单机 solrcloud es单机 es集群 es插件的安装

本文详细介绍了zookeeper集群和solr集群的安装整合,包括zookeeper集群搭建、solrCloud集群搭建及集群分片操作。还阐述了es单机、es集群及相关插件(如head插件、中文分词器IK、Kibana)的安装步骤,以及es集群的相关配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper集群和solr集群的安装整合:

最终实现下面的效果
avator
为了节省服务器资源,我把每一台服务器都装了一个zookeeper服务器和solr服务器

一.zookeeper集群搭建

1.下载 解压缩 重命名

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

tar –zxf zookeeper-3.4.10.tar.gz

mv zookeeper-3.4.10 zk

2.创建zoo.cfg

cd zk/conf

mv zoo_sample.cfg zoo.cfg

3.修改zoo.cfg,进行zookeeper集群配置
vim zoo.cfg

修改内容如下:
dataDir=/kkb/soft/zk/data
# the port at which the clients will connect
clientPort=2181
#集群中每台机器都是以下配置
#2881系列端口是zookeeper通信端口
#3881系列端口是zookeeper投票选举端口
server.1=192.168.96.151:2881:3881
server.2=192.168.96.152:2881:3881
server.3=192.168.96.153:2881:3881

4.在dataDir目录下创建myid文件,文件内容为1,对应server.1中的1。

添加内容如下(其他的zookeeper分别设置为 2和3 ):
1

5.启动zookeeper服务

/kkb/soft/zk/bin/zkServer.sh start

6.查看zookeeper状态

/kkb/soft/zk/bin/zkServer.sh status

其余两个服务器同理。。

二.solrCloud集群搭建

单个solr服务器的安装

下载 解压缩

wget http://archive.apache.org/dist/lucene/solr/4.10.4/solr-4.10.4.tgz

tar -xf solr-4.10.4.tgz

启动方法一:Solr默认提供Jetty(java写的Servlet容器)启动solr服务器。

进入example目录

执行命令:java -jar start.jar

访问地址:http://192.168.96.151:8983/solr

启动方法二:手动使用Tomcat部署
1.安装Tomcat 解压

rz

tar -zxvf apache-tomcat-x.xx.tar.gz

2.部署solr.war
把solr安装目录的webapp里面的solr.war拷贝到tomcat安装目录里面的webapp里面

cp /software/solr-4.10.4/example/webappssolr.war /kkb/server/solr/tomcat-solr/webapps

3.解压缩solr.war

/kkb/server/solr/tomcat-solr/bin/startup.sh

4.添加solr扩展jar包

cp /software/solr-4.10.4/example/ext/*  /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/lib/

5.添加log4j文件 classes目录需提前创建

cp /software/solr-4.10.4/example/resources/log4j/properties /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/classes/ 

6.配置solrhome路径

vim /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/web.xml
修改内容如下:

 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-valu>/kkb/server/solr/solrhome/</env-entry-valu>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

7.添加solr中文分词器 需提前上传这些文件
(1).把 IKAnalyzer2012FF_u1.jar 添加到

 kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/lib目录下。

(2).复制IKAnalyzer的配置文件和自定义词典和停用词词典到solr的classes目录下。

cp /root/IK\ Analyzer\ 2012FF_hf1/IKAnalyzer.cfg.xml /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/classes/

cp /root/IK\ Analyzer\ 2012FF_hf1/ext.dic /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/classes/

cp /root/IK\ Analyzer\ 2012FF_hf1/stopword.dic /kkb/server/solr/tomcat-solr/webapps/solr/WEB-INF/classes/

(3)在 schema.xml 中添加一个自定义的 fieldType ,使用中文分析器。

<fieldType name="text_ik" class="solr.TextField">
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

8.启动Tomcat

/kkb/server/solr/tomcat-solr/bin/startup.sh

9.启动之后我习惯看下日志

tail -100f /kkb/server/solr/tomcat-solr/logs/catlina.out
solrcloud服务器的安装

1.Tomcat部署Solr服务
复制单机版Solr服务对应的Tomcat,并修改端口为8888(如果不冲突可以不修改端口) 这里的复制是为了给其他两台服务器进行复制的副本

cp /kkb/server/solr/tomcat-solr /kkb/server/solrcloud/tomcat-8888 -r
vim /kkb/server/solrcloud/tomcat-8888/conf/server.xml

修改三个端口: 8005、8009、8080

2.修改Tomcat中的web.xml

vim /kkb/server/solrcloud/tomcat-8888/webapps/solr/WEB-INF/web.xml
修改内容如下:
<env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>/kkb/server/solrcloud/solrhome8888/</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

3.设置Tomcat的启动参数

vim /kkb/server/solrcloud/tomcat-8888/bin/catalina.sh
在234行下面添加如下内容:
JAVA_OPTS="-DzkHost=192.168.96.151:2181,192.168.96.152:2181,192.168.96.153:2181"

4.复制Tomcat到其他机器

scp -r /kkb/server/solrcloud/tomcat-8888 root@192.168.96.152:/kkb/server/solrcloud/

5.创建solrhome

cp /kkb/server/solr/solrhome /kkb/server/solrcloud/solrhome8888 -r

6.修改solrhome下的solr.xml

vim /kkb/server/solrcloud/solrhome8888/solr.xml
修改内容如下(hostPort参数的值):
<solrcloud>
       <str name="host">${host:}</str>
       <int name="hostPort">8888</int>
       <str name="hostContext">${hostContext:solr}</str>
       <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
       <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}  </bool>
</solrcloud>

7.复制solrhome到其他机器

scp -r /kkb/server/solrcloud/solrhome8888 root@192.168.96.152:/kkb/server/solrcloud/

8.将solr配置文件上传到zookeeper
只需要一台机器进行操作即可!!!

使用 /kkb/soft/solr-4.10.4/example/scripts/cloud-scripts 下的 zkcli.sh 命令
将 /kkb/server/solrcloud/solrhome8888/collection1/conf 目录上传到 zookeeper 进行配置。

./zkcli.sh -zkhost 192.168.10.135:2181,192.168.10.136:2181,192.168.10.137:2181 -cmd
upconfig -confdir /kkb/server/solrcloud/solrhome8888/collection1/conf -confname
myconf

使用 zookeeper 自带的 zkCli.sh 命令连接 zookeeper 集群,查看上传的配置文件

./zkCli.sh -server localhost:2181

9.启动所有Tomcat

/kkb/server/solr/tomcat-solr/bin/startup.sh

solr服务器的拷贝同理。。。
10.启动效果如图

三.集群分片

1.创建新的集群,名称为collection2,集群中有三个solr节点,将集群分为三片,每片一个副本。

http://192.168.96.151:8888/solr/admin/collections?action=CREATE&name=collection2&numShards=3&replicationFactor=1

效果如图:
avator

2.删除名称为collection1的集群

http://192.168.10.139:8280/solr/admin/collections?action=DELETE&name=collection1

效果如图:
avator

es单机及es集群及插件的安装

安装的时候需要es和Kibana和es中文分词器的安装版本的一致,可在下面链接下载:
http://kan.027cgb.com/613363/es软件.zip

一.es的安装(前提条件:jdk不要装在root目录下面)

1.下载安装包,解压缩

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-
6.5.3.tar.gz

tar -xf elasticsearch-6.5.3.tar.gz -C /kkb/server

2.配置远程访问

vim /kkb/server/elasticsearch-6.5.1/config/elasticsearch.yml

修改内容如下:
network.host: 0.0.0.0

3.配置进程可以拥有的VMA(虚拟内存区域)的数量

vim /etc/sysctl.conf
添加如下内容:
vm.max_map_count=655360

4.生效配置文件

sysctl -p

5.创建启动es的用户并修改允许打开的最大文件描述符数量

groupadd esgroup
useradd esuser -g esgroup -p 111111

vim /etc/security/limits.conf
添加如下内容:
esuser soft nofile 65536
esuser hard nofile 65536
esuser soft nproc 4096
esuser hard nproc 4096

6.设置用户最大线程数

修改内容如下:将* 改为具体的es的启动用户
esuser soft nproc 4096
root soft nproc unlimited

7.更改 elasticsearch 文件夹及内部文件的所属用户及组

chown -R esuser:esgroup /kkb/server/elasticsearch-6.5.1

8.根据服务器内存大小最好先修改一下 jvm.options

vim /kkb/server/elasticsearch-6.5.3/config/jvm.options
修改内容如下:
-Xms256m
-Xmx256m

9.切换用户并启动es

su esuser
后端进程启动:/kkb/server/elas ticsearch-6.5.3/bin/elasticsearch -d

10.访问:http://192.168.96.154:9200/

一.es插件head的安装

1.下载安装包

yum install -y git
git clone git://github.com/mobz/elasticsearch-head.git

2.node.js 下载解压

wget https://nodejs.org/dist/v10.14.2/node-v10.14.2-linux-x64.tar.gz

tar -xvf node-v10.14.2-linux-x64.tar.gz

3.配置环境变量

vim /etc/profile
export NODE_HOME=/kkb/server/node-v10.14.2-linux-x64
export PATH=$PATH:$NODE_HOME/bin
source /etc/profile

4.grunt 下载.解压.安装

wget https://nodejs.org/dist/npm/npm-1.4.12.tgz
tar -xf npm-1.4.12.tgz
cd npm
./configurer
make && make install

5.安装grunt-cli

npm install -g grunt -cli
进入Elasticsearch-head目录:
npm install grunt --save-dev

6.验证

grunt -version

7.head配置文件修改

vim Elasticsearch-head/Gruntfile.js
修改内容如下:
connect: {
            server: {
                  options: {
                        port: 9100,
                        base: '.',
                        keepalive: true,
                        hostname: '*'
                              }
                  }
         }

8.修改Elasticsearch-head/_site/app.js文件

修改这一行加入es服务器的地址:
 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.96.154:9200";

9.启动head插件

nohup grunt server &

10.访问:http://192.168.96.155:9100/

安装中文分词器IK

1.下载安装包

wget https://github.com/medcl/elasticsearch-analysisik/releases/download/v6.5.3/elasticsearch-analysis-ik-6.5.3.zip

2.解压

yum install -y unzip

 解压到/kkb/server/elasticsearch-6.5.3/plugins/ik 目录

3.重新启动es

Kibana安装

1.下载 解压缩

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-linuxx86_64.tar.gz

tar -xf kibana-6.5.1-linux-x86_64.tar.gz -C /kkb/server/

2.编辑 kibana.yml 文件

vim /kkb/server/kibana-6.5.1-linux-x86_64/config/kibana.yml
将 server.host、elasticsearch.url 修改成所在服务器的ip地址:
server.host: "192.168.96.155"
elasticsearch.url: "http://192.168.96.155:9200"

3.启动Kibana

nohup /kkb/server/kibana-6.5.1-linux-x86_64/bin/kibana &

4.通过浏览器访问 Kibana:http://192.168.96.155:5601

es集群相关配置

修改每个节点的 elasticsearch.yml :
vim /kkb/server/elasticsearch-6.5.3/config/elasticsearch.yml

# 集群名称要唯一
cluster.name: zhangyang-es
# 集群节点要不同
node.name: node-135
# 设置master和data节点
node.master: true
node.data: true
# 节点将绑定到此主机名或IP地址,我们设置成0.0.0.0为当前主机,允许ip映射访问
network.host: 0.0.0.0
# http访问端口
http.port: 9200
# tcp访问端口
transport.tcp.port: 9300
# 自动发现的路由节点
discovery.zen.ping.unicast.hosts:
["192.168.96.154:9300","192.168.96.155:9300"]
# 集群中最小主节点数,防止脑裂
discovery.zen.minimum_master_nodes: 2
# head 跨域访问
http.cors.enabled: true
http.cors.allow-orig

网上收集的elasticsearch.yml配置文件的解释:

# 集群名称 Use a descriptive name for your cluster:
cluster.name: kkb-es
# ------------------------------------ Node ------------------------------------
# 节点名称 Use a descriptive name for the node:
node.name: node-135
# 既可以选举为主节点,也可以存储数据,也可作为负载器
node.master: true
node.data: true
# 指定节点的部落属性Add custom attributes to the node:
#node.attr.rack: r1
# ----------------------------------- Paths ------------------------------------
# 数据存储地址 Path to directory where to store the data (separate multiple locations
by comma):
path.data: /opt/apps/elasticsearch/data
# Log日志 Path to log files:
path.logs: /opt/apps/elasticsearch/logs
# 临时文件
# path.work: /opt/apps/elasticsearch/tmp
# 设置插件的存放路径,默认是es根目录下的plugins文件夹
#path.plugins: /opt/apps/elasticsearch/plugins
# 设置默认索引分片个数,默认为5片。
# index.number_of_shards: 3
# 设置默认索引副本个数,默认为1个副本。
# index.number_of_replicas: 2
# ----------------------------------- Memory -----------------------------------
# Lock the memory on startup:
# 设置为true来锁住内存 因为当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
# ---------------------------------- Network -----------------------------------
# 绑定的ip地址,本机ip 不写是localhost Set the bind address to a specific IP (IPv4 or
IPv6):
# network.host: 192.168.0.1
network.host: 0.0.0.0
#设置参与集群的端口
transport.tcp.port: 9300
# 端口号 默认是9200 Set a custom port for HTTP:
http.port: 9200
# 设置内容的最大容量,默认100mb
http.max_content_length: 100mb
# --------------------------------- Discovery ----------------------------------
# 单播发现的地址Pass an initial list of hosts to perform discovery when new node is
started:
# The default list of hosts is ["127.0.0.1", "[::1]"] 通过配置这个参数来防止集群脑裂现象
(集群总节点数量/2)+1
# 最小master节点选举数 Prevent the "split brain" by configuring the majority of nodes
(total number of master-eligible nodes / 2 + 1):
discovery.zen.ping_timeout: 30s
discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 30s
discovery.zen.ping.unicast.hosts: ["192.168.10.135:9300", "192.168.10.136:9300",
"192.168.10.137:9300"]
# discovery.zen.ping.multicast.enabled: false
# ---------------------------------- Gateway -----------------------------------
# 最多等待5分钟,5分钟还没上线 就重新rebalance
# 足够的节点上线后,才进行shard recovery的过程
# 节点最少数量
gateway.recover_after_time: 5m
gateway.recover_after_nodes: 3
gateway.expected_nodes: 3
# ---------------------------------- Various -----------------------------------
# 禁止在生产环境中删除所有索引 Require explicit names when deleting indices:
# 设置是否可以通过正则或者_all删除或者关闭索引库,默认true表示必须需要显式指定索引库名称
# 生产环境建议设置为true,删除索引库的时候必须显式指定,否则可能会误删索引库中的索引库。
action.destructive_requires_name: true
# ---------------------------------- http.cors ---------------------------------
# 运行带cookie访问-用于head插件
http.cors.enabled: true
http.cors.allow-origin: "*"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值