zookeeper安装

安装并运行zookeeper

这里使用的环境是linux,zookeeper版本3.5.7

zookeeper是一个开源的分布式协调服务,这里使用三个节点构成zookeeper集群

bigdata01 bigdata02 bigdata03

1.第一步

在第一个节点中创建目录/opt/install与/opt/softs(这个随意,install放文件夹,softs放解压后的文件)

将zookeeper压缩包放入install中,然后解压到softs

tar -zxvf /opt/install/zookeeper压缩包名 -C /opt/softs

然后给softs下解压后的文件夹改个名,如同我的一样最后只剩名字与版本号zookeeper3.5.7(这样缩短名称好看而且方便以后操作)

2.第二步

在解压后的zookeeper3.5.7目录下面创建文件夹zkData

在zkData中创建myid文件,编写文件为1。1表示这个zookeeper节点的唯一标识(之后将这个节点的数据分发到其它两个节点时需要将其修改)

进入conf文件夹,删除log4j.properties的所有内容写入

# 定义日志输出路径
log4j.appender.file.File=/opt/softs/zookeeper3.5.7/logs/zookeeper.log
# 定义日志轮循策略,按天轮循
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{1}:%L - %m%n

(上面的内容复制粘贴报错的话就手打一遍)

然后在zookeeper3.5.7目录下创建logs(上面的配置中指定了logs,创建以后,后面启动运行的日志文件就会保存在这里)

3.第三步

修改zoo-sample文件(好像是这个文件)

进入conf,将zoo-sample.cfg改为zoo.cfg

将里面的datadir的路径修改为zkData的根路径,比如我的就是/opt/softs/zookeeper3.5.7/zkData

再添加以下内容

之后启动查看状态时,如果节点间都是单独的没有follower与leader就是该配置出错

log4j.configuration=/opt/softs/zookeeper3.5.7/conf/log4j.properties

server.1=bigdata01:2888:3888  
server.2=bigdata02:2888:3888  
server.3=bigdata03:2888:3888
其中server.1的1就是你的myid文件中的内容,后面bigdata01是你的节点名称,要一一对应

4.第四步

将节点的zookeeper全部内容分发到另外两台(scp应该都会用)

scp -r zookeeper路径/ root@bigdata02:目标目录 
scp -r zookeeper路径/ root@bigdata03:目标目录

修改myid,分别给23节点的myid改为2,3

5.第五步 

配置环境变量,在环境变量中添加

/etc/profile

export ZK_HOME=/opt/softs/zookeeper3.5.7  
export PATH=$PATH:$ZK_HOME/bin

然后重新source一下环境变量

运行zookeeper

sh zkServer.sh路径 start

#以我的路径为例
sh /opt/softs/zookeeper3.5.7/bin/zkServer.sh start
#也可以直接切到bin,然后直接sh zkServer.sh start

6.第六步 

太麻烦了,一个一个节点的开启关闭与查看状态,所以直接编写脚本

这里节点名为bigdata01 02 03,如果你的不是就修改成你的节点名

需要注意的点

使用脚本去运行zkServer.sh start会识别不了到java_home环境变量

解决方法

直接修改zkServer.sh,在最上面直接添加JAVA_HOME=你自己的路径

添加后如果还报找不到的错误,就在zkEnv.sh中也添加,如果一切配置都正常,还是报找不到JAVA_HOME的错误,那就把jdk文件夹删了,重新下载解压

#!/bin/bash
if [ $# -lt 1 ]
then
  echo "需要一个参数如start,stop"
  exit;
fi

case $1 in
"start")
    echo "--------开启zookeeper集群---------"
    for hostname in bigdata01 bigdata02 bigdata03
do
    echo "---$hostname---"
    ssh $hostname "/opt/softs/zookeeper3.5.7/bin/zkServer.sh start"	
   
done
   
;;	
"stop")
    echo "--------关闭zookeeper集群---------"
    for hostname in bigdata01 bigdata02 bigdata03
do
    echo "---$hostname---"
    ssh $hostname "/opt/softs/zookeeper3.5.7/bin/zkServer.sh stop"	
   
done
   

;;
"status")
    echo "--------查看zookeeper集群---------"
    for hostname in bigdata01 bigdata02 bigdata03
do
    echo "---$hostname---"
    ssh $hostname "/opt/softs/zookeeper3.5.7/bin/zkServer.sh status"	
   
done

;;
*)
    echo "--------输入参数错误---------"

;;
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末世观者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值