zookeeper集群分布式部署

1. 服务器之间设置免密登录(目的:方便消息传输与管理)

将四台主机名分别修改为node0,node1,node2,node3(执行主机名修改命令hostnamectl set-hostname xxx,然后重启reboot),并搭建免密登录:

(1)首先在四台服务器上都要执行(由于四台服务器在该过程执行相同的操作,为了提高效率,可以在xshell的对话框,选择全部会话如图1所示,然后依次发送以下命令,四台服务器即可同时执行):

ssh-keygen -t dsa -P '' -f  ~/.ssh/id_dsa
cd /root/.ssh/          #使四台服务器处于同一目录
图1
图1 通过Xshell同时向多台服务器发送会话

(2)在node0上将node0的公钥拷贝到authorized_keys中,并将该文件拷贝给node1:

cat id_dsa.pub >> authorized_keys  #公钥拷贝
# 若没有执行cd /root/.ssh/ ,则可以使用:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp authorized_keys node1:/root/.ssh/    #远程拷贝到node1

(3)在node1中将node1的公钥追加到authorized_keys中,并将该文件拷贝给node2:

cat id_dsa.pub >> authorized_keys  #公钥追加
scp authorized_keys node2:/root/.ssh/    #远程拷贝到node2

(4)在node2中将node2的公钥追加到authorized_keys中,并将该文件拷贝给node3:

cat id_dsa.pub >> authorized_keys  #公钥追加
scp authorized_keys node3:/root/.ssh/    #远程拷贝到node3

(5)在node3中将node3的公钥追加到authorized_keys中,并将该文件拷贝给node0、node1、node3:

cat id_dsa.pub >> authorized_keys  #公钥追加
scp authorized_keys node0:/root/.ssh/    #远程拷贝到node0
scp authorized_keys node1:/root/.ssh/    #远程拷贝到node1
scp authorized_keys node2:/root/.ssh/    #远程拷贝到node2

(6)验证免密登录:在各节点使用ssh命令,验证它们之间是否可以免密码登录,以node3上免密登录node2节点为例,可以看到在node3上执行ssh node2后,不用输入密码可以直接访问node2主机,如图2所示。

图2 node3主机上免密登录node2

2.安装配置JDK

具体操作见集群环境安装配置jdk_qq_44821400的博客-CSDN博客

3.zookeeper集群搭建

(1)通过WinSCP将zookeeper-3.4.9.tar.gz上传到node1的app目录下

图3  windows上传zookeeper到Linux

 (2)解压到/app/soft目录下

tar -zxf zookeeper-3.4.9.tar.gz -C /app/soft #解压
cd /app/soft/zookeeper-3.4.9  #进入解压文件目录
rm -rf docs/  #删除docs文件
cd conf/   #进入配置文件
ls   #查看当前路径下的文件
cp zoo_sample.cfg zoo.cfg #将文件zoo_sample.cfg复制一份
vim zoo.cfg   #编辑文件

(3)打开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=/app/soft/zookeeper-3.4.9/data
#日志文件位置  
dataLogDir=/var/rizhi/zookeeper/datalog
# 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
#根据主机名设置,1,2,3为选举编号
server.1=node1:2881:3881 
server.2=node2:2881:3881
server.3=node3:2881:3881

(4)创建/app/soft/zookeeper-3.4.9/data 目录,并在该目录下放一个文件:myid,在myid中写下当前zookeeper的编号,cat myid即可看到主机编号

cd ../     #返回zookeeper-3.4.9目录
mkdir /data #在该目录创建data文件夹
mkdir -p /var/rizhi/zookeeper/datalog  #日志文件位置
echo 1 > /app/soft/zookeeper-3.4.9/data/myid #在myid文件中写入当前主机的选择编号1

(5)将配置好的zookeeper远程复制到node2和node3,同时相应修改myid的主机编号为2和3

scp -r zookeeper-3.4.9/ node2:/app/soft
scp -r zookeeper-3.4.9/ node3:/app/soft

(6)进入/app/soft/zookeeper-3.4.9目录,vim /etc/profile打开配置文件并加入如下修改配置文件,并source /etc/profile使配置文件生效

export ZOOKEEPER_HOME=/app/soft/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin   #方法一,直接配置

#方法二:直接在java后追加export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

(7)启动

zkServer.sh start
zkServer.sh status

注:若zookeeper能够正常启动,但查看状态出现错误,可以进入/app/soft/zookeeper-3.4.9/bin/目录下,打开zookeeper.out文件查看报错信息,显示myid文件有问题,如图4所示。仔细核对信息并没有错,查看/app/soft/zookeeper-3.4.9/路径下的文件夹信息,发现有两个data文件夹如图5所示,而配置文件中由于路径后加了注释,系统默将注释部分也当成完整路径的一部分导致出错。

解决办法:将zoo.cfg路径后的注释删除

图4 报错信息
图5 

 若执行上述操作依旧没有成功启动,可参考解决【已解决-最全分析】zookeeper启动后,zkServer.sh status报错:Error contacting service. It is probably not running_[quorumpeer[myid=1]/0:0:0:0:0:0:0:0:2181:quorumcnx_神是念着倒的博客-CSDN博客

若三台服务器同时启动,启动成功会选举出leader与follower,如下图所示:

(8)通过zkCli.sh连接zookeeper,通过quit退出,若出现如下错误,可重新进行免密操作并重启

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值