一、介绍
1.定义
①zookeeper
从名字上直译就是动物管理员,动物指的是 Hadoop 一类的分布式软件,管理员三个字体现了 ZooKeeper 的特点:维护、协调、管理、监控
②Kafka
是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理
2.特点
①zookeeper
最终一致性 可靠性 实时性 独立性 原子性
②kafka
高吞吐量、低延迟 可扩展性 容错性 高并发
3.关系
①在Kafka的设计中,选择了使用Zookeeper来进行所有Broker的管理
②生产者负载均衡
传统的4层负载均衡 使用zookeeper进行负载均衡
③消费者的负载均衡和生产负载均衡类似
④记录消息分区于消费者的关系,都是通过创建修改zookeeper上相应的节点实现
⑤记录消息消费进度Offset记录,都是通过创建修改zookeeper上相应的节点实现
二、Zookeeper安装与部署
1.zookeeper安装与配置
(1)解压安装包
①zookeeper官网
②选择版本并上传
③解压并创建软连接
解压:
tar -zxvf apache-zookeeper-3.8.3-bin (9).tar.gz -C ../server
创建软连接:
ln -s zookeeper-3.8.3/ zookeeper
(2).配置环境变量并分发
①修改配置环境
vim /etc/profile
②配置环境变量
export ZOOKEEPER_HOME=/opt/server/apache-zookeeper-3.8.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
③拷贝环境变量
scp -r /etc/profile root@192.168.229.112(113): /etc/profile (xsync /etc/profile)
2.修改配置文件
(1)修改配置文件
① 切换目录
cd /opt/server/zookeeper/conf
②更改配置文件名
mv zoo_sample.cfg zoo.cfg
③编辑zoo.cfg文件
vim zoo.cfg
④修改参数
dataDir=/opt/server/zookeeper/zkdata
###########cluster#########
server.1=192.168.229.111:2888:3888
server.2=192.168.229.112:2888:3888
server.3=192.168.229.113:2888:3888
⑤创建数据文件目录
mkdir zkdata
⑥创建myid文件
vim myid
⑦设置myid
echo > 1 myid
(2)分发到其他节点
①拷贝ZK到其他节点
scp -r zookeeper-3.8.3/ root@192.168.229.12(113): /opt/server
②修改myid
hadoop2:echo > 2 myid
hadoop3:echo > 3 myid
3.Zookeeper集群的启动和停止
(1)启动zookeeper集群
①切换目录
cd /opt/server/zookeeper/bin/
②启动ZK
./zkServer.sh start
③到hadoop2和hadoop3启动ZK
④Hadoop1查看状态
需要3台集群都启动ZK,才能查看状态,查看进程不一定代表zk启动了,zk的状态才能代表zk的启动
./zkServer.sh status
⑤jps查看进程
jps
(2)停止ZK集群
①停止集群
./zkServer.sh stop
②停止Hadoop2和Hadoop3集群
3.编辑ZK集群启动和停止脚本
(1)编辑脚本文件
①切换目录
cd /opt/script/
②编辑zk.sh集群控制脚本
vim zk.sh
③脚本文件
#./bin/base
case $1 in
"start"){
for i in hadoop1 hadoop2 hadoop3
do
echo "------------- $1 --------------"
ssh $1 "/opt/server/zookeeper-3.8.3/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop1 hadoop2 hadoop3
do
echo "------------- $1 --------------"
ssh $1 "/opt/server/zookeeper-3.8.3/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop1 hadoop2 hadoop3
do
echo "------------- $1 --------------"
ssh $1 "/opt/server/zookeeper-3.8.3/bin/zkServer.sh status"
done
};;
esac
④授权
chmod 777 zk.sh
(2)启动和停止ZK集群
①启动ZK集群
./zk.sh start
②查看进程
jps
③查看集群状态
./zk.sh status
④停止ZK集群
./zk.sh stop
⑤查看ZK结束状态
./zk.sh status
三、Kafka安装与部署
1.kafka安装与配置
(1)下载并解压kafka安装包
①kafka官网
②选择版本并上传
③ 解压并创建软连接
解压
tar -zxvf kafka_2.11-2.4.1.tgz -C ../server/
创建软连接
ln -s kafka_2.11-2.4.1/ kafka
(2)配置环境变量并发放
①修改配置文件
vim /etc/profile
②配置环境变量
export KAFKA_HOME=/opt/server/kafka_2.11-2.4.1
export PATH=$PATH:$KAFKA_HOME/bin
③拷贝
scp -r /etc/profile root@192.168.229.112(113): /etc/profile (xsync /etc/profile)
2.修改配置文件
(1)修改kafka配置文件
①切换目录
cd /opt/server/kafka/config/
②编辑server.properties配置文件
vim server.properties
③修改配置文件
broker.id=0
log.dirs=/opt/server/kafka-2.11-2.4.1
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka
④创建logs目录
mkdir logs
(2)分发到其他节点
①分发kafka
scp -r kafka_2.11-2.4.1/ root@192.168.229.112(113): /opt/server/
②编辑Hadoop2和Hadoop3配置文件
Hadoop2
Hadoop3
3.kafka集群启动和停止
(1)启动kafka服务
①使用脚本启动ZK服务
./zk.sh start
②查看ZK状态
./zk.sh status
③切换目录
cd /opt/server/kafka/bin/
④启动kafka
kafka-server-start.sh -daemon ../config/server.properties
⑤查看状态
jps
⑥在Hadoop2和Hadoop3启动kafka
(2)停止kafka服务
①停止三台Hadoop的kafka
kafka-server-stop.sh -daemon ../config/server.properties
②停止ZK
务必确保kafka服务完全停止,再关闭ZK服务,否则可能会丢失数据
4.编辑kafka集群启动和停止脚本
(1)编辑脚本文件
①切换目录
cd /opt/script/
②编辑kf.sh集群控制脚本
vim kf.sh
③脚本文件
#!/bin/bash
case $1 in
"start"){
for i in hadoop1 hadoop2 hadoop3
do
echo -------------------------------- $i kafka 启动 ---------------------------
ssh $i "source /etc/profile;/opt/server/kafka/bin/kafka-server-start.sh -daemon /opt/server/kafka/config/server.properties"
done
}
;;
"stop"){
for i in hadoop1 hadoop2 hadoop3
do
echo -------------------------------- $i kafka 停止 ---------------------------
ssh $i "/opt/server/kafka/bin/kafka-server-stop.sh"
done
}
;;
esac
④授权
chmod 777 kf.sh
(2)启动kafka集群
①启动ZK集群
./zk.sh start
②查看ZK状态
./zk.sh status
③启动kafka集群
./kf.sh start
④查看进程
./xcall.sh jps
(3)停止kafka集群
①停止kafka集群
./kf.sh stop
②停止zk集群
./zk.sh stop
谢谢观看