Zookeeper集群搭建

1. zookeeper

ZooKeeper是一个分布式的,开放源码(apache)的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase、dubbox、kafka的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

  • zookeeper在solrCloud中的作用
    • 主要用来管理solr集群中的相关配置信息和集群的运行状态, 协助solr进行主节点的选举
      准备工作 : 三台虚拟机: 安装好 jdk1.8 64位即可

2. zookeeper集群搭建**

目录结构

  • 安装目录: /export/servers
  • 软件存放的目录: /export/software
  • 日志文件的目录: /export/logs
  • 数据存放的目录: /export/data

创建以上目录:

  • mkdir -p /export/servers
  • mkdir -p /export/software
  • mkdir -p /export/logs
  • mkdir -p /export/data

修改三台虚拟机的hosts文件:

vi /etc/hosts
添加如下内容:
192.168.72.141 node01
192.168.72.142 node02
192.168.72.143 node03
---------修改主机名 ip地址一定要是自己的linux的ip , 后面的主机名可以根据自己来但要保持一致!!!!
--------以下是博主自己linux的ip其他的相似----------
192.168.244.200 linux01
192.168.244.201 linux02
192.168.244.202 linux03
注意: 添加时, 前面ip地址一定是自己的三台linux的ip地址 切记不要搞错了

2.1 上传zookeeper的压缩包(上传其中一台即可)

cd /export/software/
rz //此时选择zookeeper的压缩包进行上传
[注]:rz是采用CRT的代码里面的方法

2.2 解压zookeeper到指定的目录

tar -zxf zookeeper-3.4.9.tar.gz -C /export/servers/
cd /export/servers/

2.3 修改zookeeper的配置文件

cd /export/servers/zookeeper-3.4.9/conf
mv zoo_sample.cfg  zoo.cfg
vi zoo.cfg

修改数据存储位置

修改后, 在配置文件的底部, 添加如下内容
server.1=node01:2887:3887
server.2=node02:2887:3887
server.3=node03:2887:3887
-----博主的----
server.1=linux01:2887:3887
server.2=linux02:2887:3887
server.3=linux03:2887:3887
服务器相互通信的端口,投票选举的端口
更改后配置文件整体内容如下:(如果担心修改错误, 可以直接将zoo.cfg中的内容全部删除, 复制以下内容即可)
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/data/zk
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

#zookeeper集群配置
server.1=node01:2887:3887
server.2=node02:2887:3887
server.3=node03:2887:3887

#zookeeper集群配置(博主本人的)
server.1=linux01:2887:3887
server.2=linux02:2887:3887
server.3=linux03:2887:3887

处理完成后保存:wq退出即可

2.4 将配置好的zookeeper发送到其他两台主机上

cd /export/servers/
scp -r zookeeper-3.4.9/ root@node02:$PWD   //将zookeeper复制到node02的同级目录下
scp -r zookeeper-3.4.9/ root@node03:$PWD   //将zookeeper复制到node03的同级目录下
------
scp -r zookeeper-3.4.9/ root@linux02:$PWD   //将zookeeper复制到node02的同级目录下
scp -r zookeeper-3.4.9/ root@linux03:$PWD   //将zookeeper复制到node03的同级目录下

复制到另外两个虚拟机发送完成后,在其他两台主机查看, 是否已经成功接收到

cd /export/servers
ll

成功接收到

2.5 分别在三台主机输入如下命令

node1:执行的命令
linux01:执行的命令
mkdir -p  /export/data/zk
echo "1" > /export/data/zk/myid 
cat /export/data/zk/myid             //此命令用于查看此文件有没有正确写入 1

node2:执行的命令
linux02:执行的命令
mkdir -p  /export/data/zk
echo "2" > /export/data/zk/myid 
cat /export/data/zk/myid             //此命令用于查看此文件有没有正确写入 2

node3:执行的命令
linux03:执行的命令
mkdir -p  /export/data/zk
echo "3" > /export/data/zk/myid 
cat /export/data/zk/myid            //此命令用于查看此文件有没有正确写入 3

2.6 分别启动三台zookeeper(建议启动顺序 node1>>node2>>node3 依次启动)

cd /export/servers/zookeeper-3.4.9/bin/
./zkServer.sh start
  • node1 : followernode1职称
  • node2 : leader
    node2职称
  • node3 : follower
    node3职称

2.7 zookeeper的选举机制(了解)

  • 初始化集群: 采取投票机制, 选举过半即为leader
  1. 当第一台(id=1),启动后, 由于目前自有自己,故会把票投给自己
  2. 当第二台(id=2),启动后, 由于目前已经又二台启动, 这时候会将票投给id最大的机器, 此时三台中已经有二台启动, 数量过半, 第二台理所应当的成为了leader
  3. 当第三台(id=3),启动后, 虽然id=3为最大, 但是由于leader已经产生, 故只能担任follower
  • 当下一次在重新启动时, 又会恢复选举,此时谁的数据多, 谁为leader, 如果数据都一样, 那么看id谁最大,同时一般选举过半,就会产生leader

3. solrCloud搭建

3.1 将在window中部署的单机版solr上传到node01中(也是用一台机器进行搭建 , 之后再发送)

cd /export/software/
rz               //选择资料中的solr.zip进行上传(此zip就是solr当天部署后的内容,包含solr-home和tomcat)

3.2 将zip进行解压到指定目录中

yum -y install unzip
unzip solr.zip 
mv solr /export/servers/

3.3 修改tomcat的Catalina.sh的配置文件

cd /export/servers/solr/apache-tomcat-7.0.77/bin
vi catalina.sh             //注意此时修改的.sh的文件 为非.bat

添加如下内容:(此处后期还会进行修改, 目前只是为了测试单机版本能否在linux中运行)
export "JAVA_OPTS=-Dsolr.solr.home=/export/servers/solr/solr-home"

添加后保存退出即可

3.4 启动tomcat测试单机版本能否在linux中运行

注意: 由于是解压的是zip文件, tomcat中的.sh文件都没有任何的执行缺陷, 需要进行赋权限:
chmod 777 /export/servers/solr/apache-tomcat-7.0.77/bin/*

启动tomcat:
cd /export/servers/solr/apache-tomcat-7.0.77/bin/
./startup.sh 

solr看到此页面,说明单机版本配置成功
成功后:将tomcat务必关机操作
./shutdown.sh
务必执行以上命令, 关闭tomcat

3.5 将solr-home中的data目录全部清空, 只保留一个索引库即可

 cd /export/servers/solr/solr-home/
 rm -rf collection2/                    //删除多余的索引库, 只保留一个collection1即可
 rm -rf collection1/data/

保存一个即可

3.6 将solr的配置文件交给zookeeper进行管理

1. 需要先上传solr的安装包
 cd /export/software/
 rz
2. 解压solr的安装包
	unzip solr-4.10.2.zip 
3. 将solr安装包复制到/export/servers下
	mv solr-4.10.2 /export/servers/
4. 开始执行上传
	cd /export/servers/solr-4.10.2/example/scripts/cloud-scripts/
	//注意: 以下命令是一行
	./zkcli.sh -zkhost node01:2181,node02:2181,node03:2181 -cmd upconfig -confdir /export/servers/solr/solr-home/collection1/conf/ -confname solrconf
	----
	./zkcli.sh -zkhost linux01:2181,linux02:2181,linux03:2181 -cmd upconfig -confdir /export/servers/solr/solr-home/collection1/conf/ -confname solrconf

在这里插入图片描述以下操作可以跳过

以下命令主要用于查看zookeeper中是否存在solr的配置文件: 可以不执行跳过
cd /export/servers/zookeeper-3.4.9/bin
./zkCli.sh
ls /configs/solrconf

在这里插入图片描述

3.7 修改solr.xml配置文件

solr.xml是solr集群管理文件

cd /export/servers/solr/solr-home/
vi solr.xml

修改管理文件

3.8 修改tomcat的Catalina.sh配置文件

cd /export/servers/solr/apache-tomcat-7.0.77/bin/
vi catalina.sh 
*** 修改如下内容
export "JAVA_OPTS=-Dsolr.solr.home=/export/servers/solr/solr-home   //原来的内容

//以下为替换后的内容  注意: 这是一行内容, 复制时一起复制即可
export "JAVA_OPTS=-Dsolr.solr.home=/export/servers/solr/solr-home -DzkHost=node01:2181,node02:2181,node03:2181"     
-------------
export "JAVA_OPTS=-Dsolr.solr.home=/export/servers/solr/solr-home -DzkHost=linux01:2181,linux02:2181,linux03:2181"  

3.9 将solr目录发送到其他两台linux上(node02,node03)

cd /export/servers/
scp -r solr root@node02:$PWD
scp -r solr root@node03:$PWD
---------------
scp -r solr root@linux02:$PWD
scp -r solr root@linux03:$PWD

在其他两台主机上查看, 是否接收成功:
查看传送是否成功

3.10 依次启动三台solr即可(开启之前一定要先开启zookeeper集群)

开启之前一定要先开zookeeper

 cd /export/servers/solr/apache-tomcat-7.0.77/bin/
 ./startup.sh

在这里插入图片描述

4.solrCloud相关的管理命令

4.1 创建新集群(创建一个索引库)

该命令直接在url地址栏输入即可
http://192.168.72.141:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=3&maxShardsPerNode=8&property.schema=schema.xml&property.config=solrconfig.xml

接口参数说明:

action: 表示执行的操作 CREATE 创建
name: 新集群的名称
numShards: 分片数
replicationFactor: 每个分片的节点数
maxShardsPerNode: 设置每个分片的最大节点数, 默认为1
property.schema: 指定使用的schema文件 (注意, 此文件必须在zookeeper上存在)
property.config: 指定使用的solrConfig文件 (注意, 此文件必须在zookeeper上存在)
在这里插入图片描述

4.2 删除core命令

http://192.168.72.141:8080/solr/admin/collections?action=DELETE&name=collection1

4.3 查询所有的Core

http://192.168.72.141:8080/solr/admin/collections?action=LIST

4.4分裂shard(扩展容量)

分裂: 就是将某个分片分成两个分片
注意: 一旦分裂后, 虽然原来的分片还可以提供服务, 但是已经不再保存数据, 会将数据保存到新的分裂后的分片

http://192.168.72.141:8080/solr/admin/collections?action=SPLITSHARD&collection=collection1&shard=shard1

参数说明:
shard: 指定要分裂的分片

4.6 删除某个分片

注意: 删除的分片必须是已经被分裂的, 或者是已经无法提供服务的

http://192.168.72.141:8080/solr/admin/collections?action=DELETESHARD&shard=shard2&collection=collection2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值