zk安装管理
参考:
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安装管理的更多相关文章
- Linux 学习 (十一) 软件安装管理
Linux软件安装管理 学习笔记 软件包简介 软件包分类: 源码包 :脚本安装包 二进制包(RPM 包.系统默认包) 源码包的优点: 开源,如果有足够的能力,可以修改源代码 可以自由选择所需的功能 软 ...
- openWrt 安装管理界面luci中文包
openWrt15安装管理界面luci中文包 如果刚刷的openwrt15没有中文界面,用ssh连接路由后用opkg安装 root@bang-bang-tang:~# opkg insta ...
- Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)
apt list *python* Nosee123关注赞赏支持 Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...
- Linux软件安装管理之——dpkg与apt-*详解
Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...
- inux软件安装管理之——dpkg与apt-*详解
inux软件安装管理之--dpkg与apt-*详解 Nosee123关注 0.5922017.09.12 17:47:44字数 3,894阅读 8,565 [Linux软件安装管理系列]- - 传送门 ...
- @Zookeeper可视化工具。 ZK 安装 node-zk-browser。2015.10.22亲测可用
zookeeper基本是基于API和console进行znode的操作,并没有一个比较方便的操作界面,这里也发现了taobao 伯岩写的一个工具,可以比较方便的查询zookeeper信息. 工具的开发 ...
- vim配置及插件安装管理(超级详细)
1 写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用 ...
- Linux软件安装管理概述
介绍如何在Linux字符界面下安装软件 课程大纲: 一.软件包管理简介 二.rpm命令管理 三.yum在线管理 四.源码包管理 五.脚本安装包
- vim配置及插件安装管理(超级详细)[转]
1 写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用 ...
随机推荐
- linux下ssh免秘钥登录
1.检查防火墙是否关闭 (1)切换到root用户 (2)查看防火墙状态 service iptables status 这是没有关闭 (3)设置关闭 service iptables stop 2.检 ...
- asp.net大文件传输断点续传源码
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...
- js获取用户当前页面复制的内容并修改
如果只是单纯的获取页面上复制的内容可以使用window.getSelection()来获取选中的内容,在执行复制操作就可以了,但是如果想修改复制的内容可以先获取要复制的内容修改之后再用document ...
- finally的一个妙用
●传统用法try-catch-finally大家都会用:try包裹可能抛出异常的代码:catch捕获异常并对其处理:finally做一些资源关闭等回收工作.简单明了一句话就能说清. 稍微进阶一些的,大 ...
- js获取当前页面url信息
<html> <head> <meta charset="utf-8" /> <title></title> <s ...
- ast.literal_eval(转)
eval函数在Python中做数据类型的转换还是很有用的.它的作用就是把数据还原成它本身或者是能够转化成的数据类型.那么eval和ast.literal_val()的区别是什么呢?本文将大家介绍关于P ...
- git忽略提交:.gitignore
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交. Git 忽略文件提交的方法 有三种方法可以实现忽略Gi ...
- LeetCode 470. 用 Rand7() 实现 Rand10()(Implement Rand10() Using Rand7())
题目描述 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数. 不要使用系统的 Math.random() 方法. 示 ...
- ActiveXObject常用方法
function getusername() { var WshNetwork = new ActiveXObject("WScript.Network"); alert(&quo ...
- (转)常用 HTTP 状态码对照表
Code 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须 ...