参考:

https://www.cnblogs.com/yinzhengjie/p/9209319.html

10.52.110.48 bi-kafka-3
10.52.48.92 bi-kafka-1
10.52.60.235 bi-kafka-2

1/ 三个节点都需要安装
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

2/ 添加环境变量
vim /etc/profile
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:/opt/confluent-5.2.2/bin

source /etc/profile

3/ 安装zk,选一个性能好的作为主节点,在主节点上:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
tar -zxf apache-zookeeper-3.5.5-bin.tar.gz -C /hongfeng/software/

4/ 创建配置zookeeper的堆内存配置文件
cat /hongfeng/software/apache-zookeeper-3.5.5-bin/conf/java.env
#指定JDK的安装路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
#指定zookeeper的heap内存大小
export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"

5/ 修改配置文件zoo.cfg
vim /hongfeng/software/apache-zookeeper-3.5.5-bin/conf/zoo.cfg

tickTime=2000
initLimit=10
#存放数据文件
dataDir=/data/zookeeper
syncLimit=5
clientPort=2181
#zk cluster,2888为选举端口,3888为心跳端口
server.101=10.52.110.48:2888:3888
server.102=10.52.48.92:2888:3888
server.103=10.52.60.235:2888:3888

6/ 添加zk的环境变量
vim /etc/profile
#ADD Zookeeper PATH BY yinzhengjie
ZOOKEEPER=/hongfeng/software/apache-zookeeper-3.5.5-bin
PATH=$PATH:$ZOOKEEPER/bin

7/#配置主节点到其它节点免密
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id 10.52.110.48
ssh-copy-id 10.52.48.92
ssh-copy-id 10.52.60.235

8/ 把上面的配置copy过去
scp -r /hongfeng/software/apache-zookeeper-3.5.5-bin/ 10.52.48.92:/hongfeng/software/
scp -r /hongfeng/software/apache-zookeeper-3.5.5-bin/ 10.52.60.235:/hongfeng/software/

9/ 每个节点下建myid文件,里面的id要不一样

mkdir /data/zookeeper/ -p

vim /data/zookeeper/myid

yum -y install ansible
[root@10-52-110-48 software]# ansible zk -m shell -a 'cat /data/zookeeper/myid'
10.52.48.92 | CHANGED | rc=0 >>
102
10.52.60.235 | CHANGED | rc=0 >>
103
10.52.110.48 | CHANGED | rc=0 >>
101

10/ 每台机器上启动zk
zkServer.sh start
自己写管理脚本zk-manager.sh
#!/bin/bash
#@author :hongfeng

#判断用户是否传参
if [ $# -ne 1 ];then
echo "无效参数,用法为: $0 {start|stop|restart|status}"
exit
fi

#获取用户输入的命令
cmd=$1

#定义函数功能
function zookeeperManger(){
case $cmd in
start)
echo "启动服务"
remoteExecution start
;;
stop)
echo "停止服务"
remoteExecution stop
;;
restart)
echo "重启服务"
remoteExecution restart
;;
status)
echo "查看状态"
remoteExecution status
;;
*)
echo "无效参数,用法为: $0 {start|stop|restart|status}"
;;
esac
}

#定义执行的命令
function remoteExecution(){
for (( i=1 ; i<=3 ; i++ )) ; do
tput setaf 2
echo ========== bi-kafka-$i zkServer.sh $1 ================
tput setaf 9
ssh bi-kafka-$i "source /etc/profile ; zkServer.sh $1"
done
}

#调用函数
zookeeperManger

用脚本检查:

[root@bi-kafka-1 script]# sh zk-manager.sh status
查看状态
========== bi-kafka-1 zkServer.sh status ================
ZooKeeper JMX enabled by default
Using config: /hongfeng/software/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
========== bi-kafka-2 zkServer.sh status ================
ZooKeeper JMX enabled by default
Using config: /hongfeng/software/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
========== bi-kafka-3 zkServer.sh status ================
ZooKeeper JMX enabled by default
Using config: /hongfeng/software/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

用图形工具在根下建一个kafka01目录(为了多kafka集群管理),改kafka的配置文件:
由于端口冲突的原因,zk的client端口在zk配置文件中改为了2181:
10.52.110.48:2182,10.52.48.92:2182,10.52.60.235:2182/kafka01

附录:zk的图形化管理工具

wget https://github.com/zhitom/zkweb/releases/download/zkWeb-v1.2.1/zkWeb-v1.2.1.jar

java -jar zkWeb-v1.2.1.jar

默认启动端口是8099

访问这台机器的ip:8099

在web界面添加如下信息,可以把三个节点都一一添加

注: 如果你配置文件clientPort=2181, 连接端口要改为2181

 

zk安装管理的更多相关文章

  1. Linux 学习 (十一) 软件安装管理

    Linux软件安装管理 学习笔记 软件包简介 软件包分类: 源码包 :脚本安装包 二进制包(RPM 包.系统默认包) 源码包的优点: 开源,如果有足够的能力,可以修改源代码 可以自由选择所需的功能 软 ...

  2. openWrt 安装管理界面luci中文包

    openWrt15安装管理界面luci中文包   如果刚刷的openwrt15没有中文界面,用ssh连接路由后用opkg安装     root@bang-bang-tang:~# opkg insta ...

  3. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

  4. Linux软件安装管理之——dpkg与apt-*详解

    Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...

  5. inux软件安装管理之——dpkg与apt-*详解

    inux软件安装管理之--dpkg与apt-*详解 Nosee123关注 0.5922017.09.12 17:47:44字数 3,894阅读 8,565 [Linux软件安装管理系列]- - 传送门 ...

  6. @Zookeeper可视化工具。 ZK 安装 node-zk-browser。2015.10.22亲测可用

    zookeeper基本是基于API和console进行znode的操作,并没有一个比较方便的操作界面,这里也发现了taobao 伯岩写的一个工具,可以比较方便的查询zookeeper信息. 工具的开发 ...

  7. vim配置及插件安装管理(超级详细)

    1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用 ...

  8. Linux软件安装管理概述

    介绍如何在Linux字符界面下安装软件 课程大纲: 一.软件包管理简介 二.rpm命令管理 三.yum在线管理 四.源码包管理 五.脚本安装包

  9. vim配置及插件安装管理(超级详细)[转]

    1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用 ...

随机推荐

  1. addClass(class|fn)

    addClass(class|fn) 概述 为每个匹配的元素添加指定的类名.深圳dd马达   参数 classStringV1.0 一个或多个要添加到元素中的CSS类名,请用空格分开 function ...

  2. [Docker]Harbor部署私有镜像仓库

    Harbor部署私有镜像仓库 认识: Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器. 部署环境: CentOS7 Python2.7.5 Docker CE ...

  3. ueditor编辑器+粘贴word

    最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...

  4. BZOJ 1444: [Jsoi2009]有趣的游戏 AC自动机+概率与期望+矩阵乘法

    这道题还比较友好~首先,构建出来 $AC$ 自动机,那么我们要求的就是从 $0$ 号点走无限次走到一个终止节点的概率. 考虑构建转移矩阵 $M,$ $M_{i,j}$ 表示节点 $i$ 转移到节点 $ ...

  5. angular打包(二):nw.js

    1 npm build 把ng编译出dist 2 单独写一个package.json 放在dist文件夹里. { "name": "app", "ma ...

  6. HGOI 20191029pm 题解

    Promblem A 小学组 给出一个位运算操作符$\oplus \in \{or , and , xor\}$ ,和$n$个$m$维向量$a_i$,其中$a_{i,j} \in \{0,1\}$. ...

  7. eclipse打开项目中文件时左侧project explorer同时展开该文件的路径

    如图,点击Package Explorer面板上的双向箭头图标即可

  8. Keras学习笔记二:保存本地模型和调用本地模型

    使用深度学习模型时当然希望可以保存下训练好的模型,需要的时候直接调用,不再重新训练 一.保存模型到本地 以mnist数据集下的AutoEncoder 去噪为例.添加: file_path=" ...

  9. Laravel find in set排序

    做项目遇到个需求,需要对结果集中的数据进行指定规则的顺序排列.例如,用户状态有四种: 0=>未激活:1=>正常:2=>禁用:3=>软删除 现在的需求是,我要按照:正常-> ...

  10. oc 计算 带括号 式子

    下面代码实现可以计算 类似以下的字符窜. @"(1+2*(3+4)+3)/2" 自写一个简单 stack .不知道 OC为什么不提供Stack类. #import <Foun ...