kafka+zookeeper的搭建

kafka从2.8版本开始,就可以不用配置zookeeper了,但是也可以继续配置。我目前使用的kafka版本是kafka_2.12-3.0.0.tgz,其中前面的2.12表示是使用该版本的scala语言进行编写的,而后面的3.00才是kafka当前的版本。

通过百度网盘分享的文件:apache-zookeeper-3.6.4-bin.tar.gz

链接:https://pan.baidu.com/s/1XTh89ZRLh2Etbz9lFTWyag?pwd=l037

提取码:l037

通过百度网盘分享的文件:kafka

链接:https://pan.baidu.com/s/1w0qZZK3VdGYRPp2T1yWv4w?pwd=3wr1

提取码:3wr1

kafka的文件夹中有kafka和一个kafka的ui软件

这种配置要想使用kafka需要先启动zookeeper

关闭时,需要先关闭kafka再关闭zookeeper,否则kafka就关闭不掉了,需要kill

zookeeper的配置

上传

复制代码
1、将zk软件上传到/opt/modules 下
2、解压 ,重命名,配置环境变量
tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz -C /opt/installs/
mv apache-zookeeper-3.6.4-bin zookeeper
vi /etc/profile
export ZOOKEEPER_HOME=/opt/installs/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile

修改配置文件

复制代码
cd /opt/installs/zookeeper/conf

mv  zoo_sample.cfg  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=/opt/installs/zookeeper/zkData
# 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
server.1=bigdata01:2888:3888
server.2=bigdata02:2888:3888
server.3=bigdata03:2888:3888

创建文件夹

复制代码
cd /opt/installs/zookeeper/
mkdir zkData
cd zkData
touch myid
echo "1" > myid

将配置好的zookeeper文件传给集群内所有的服务器

记得将myid文件中的数据修改一下

我的有bigdata01,bigdata02,bigdata03 三台服务器

bigdata01中myid文件中为1

bigdata02中myid文件中为2

bigdata03中myid文件中为3

一个脚本:用于启动/关闭/查看集群中所有的zookeeper

在/usr/local/bin 下面,创建zk.sh

复制代码
#!/bin/bash

# 获取参数
COMMAND=$1
if [ ! $COMMAND ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi
if [ $COMMAND != "start" -a $COMMAND != "stop" -a $COMMAND != "status" ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi

# 所有的服务器
HOSTS=( bigdata01 bigdata02 bigdata03 )
for HOST in ${HOSTS[*]}
do
    ssh -T $HOST << TERMINATOR
    echo "---------- $HOST ----------"
    zkServer.sh $COMMAND 2> /dev/null | grep -ivh SSL
    exit
TERMINATOR
done

该脚本的使用方式:

复制代码
chmod 777 zk.sh

zk.sh start
zk.sh stop
zk.sh status

假如不配置该脚本

复制代码
在每一个服务器上运行 
zkServer.sh stop/start/status

kafka的配置

上传

复制代码
1、将kafka软件上传到/opt/modules 下
2、解压 ,重命名,配置环境变量
tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/installs/
mv kafka_2.12-3.0.0 kafka3
vi /etc/profile
export KAFKA_HOME=/opt/installs/kafka3
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile

集群中所有服务器的profile文件都需要修改 记得刷新环境变量

修改配置文件

复制代码
cd /opt/installs/kafka3

vi server.properties

修改其中的部分内容:

复制代码
#broker 的全局唯一编号,不能重复,只能是数字。 
broker.id=0 

#kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔 
log.dirs=/opt/installs/kafka3/datas 

#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理) 
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181/kafka3

分发修改好的kafka文件:

复制代码
使用scp命令
scp /opt/installs/kafka3 root@bigdata02:/opt/installs
scp /opt/installs/kafka3 root@bigdata03:/opt/installs

分别在 bigdata02 和 bigdata03上修改配置文件/opt/installs/kafka/config/server.properties 中的 broker.id=1、broker.id=2

注:broker.id 不得重复,整个集群中唯一。

一个脚本:用于启动/关闭/查看集群中所有的kafka

在/usr/local/sbin 目录下创建文件 kf.sh 脚本文件

vi kf.sh

复制代码
#! /bin/bash
case $1 in
"start"){
 for i in bigdata01 bigdata02 bigdata03
 do
 echo " --------启动 $i Kafka-------"
 ssh $i "source /etc/profile; /opt/installs/kafka3/bin/kafka-server-start.sh -daemon /opt/installs/kafka3/config/server.properties"
 done
};;
"stop"){
 for i in bigdata01 bigdata02 bigdata03
 do
 echo " --------停止 $i Kafka-------"
 ssh $i "source /etc/profile; /opt/installs/kafka3/bin/kafka-server-stop.sh"
 done
};;
esac

chmod u+x kf.sh

如何使用:
kf.sh start
kf.sh stop

假如没有配置脚本

复制代码
kafka-server-start.sh
kafka-server-stop.sh

结果

相关推荐
数据与人工智能律师2 小时前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
mykyle5 小时前
Elasticsearch-ik分析器
大数据·elasticsearch·jenkins
itLaity5 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
快乐肚皮5 小时前
ZooKeeper学习专栏(五):Java客户端开发(原生API)详解
学习·zookeeper·java-zookeeper
qq_529835355 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
weixin_lynhgworld6 小时前
淘宝扭蛋机小程序系统开发:重塑电商互动模式
大数据·小程序
smileNicky6 小时前
RabbitMQ有多少种Exchange?
分布式·rabbitmq
你我约定有三6 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
Java初学者小白6 小时前
秋招Day19 - 分布式 - 分布式事务
java·分布式
RPA+AI十二工作室8 小时前
影刀RPA_Temu关键词取数_源码解读
大数据·自动化·源码·rpa·影刀