当前位置: 首页 > article >正文

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

假如没有配置脚本

//启动时需要指定server.properties的路径 
//若不加-daemon 就会占用一个窗口 此时是后台启动kafka进程
./kafka-server-start.sh -daemon ../config/server.properties
kafka-server-stop.sh

结果


http://www.kler.cn/a/390771.html

相关文章:

  • Spring框架之观察者模式 (Observer Pattern)
  • VMware虚拟机安装Win7专业版保姆级教程(附镜像包)
  • 使用kalibr_calibration标定相机(realsense)和imu(h7min)
  • 系统架构设计师论文:大数据Lambda架构
  • 华为数通HCIA系列第5次考试-【2024-46周-周一】
  • 详解kafka消息发送重试机制的案例
  • Mysql个人八股总结
  • 置信传播算法复现
  • idea 基础简单应用(java)
  • BY组态-低代码web可视化组件
  • Android Studio 学习——整体框架和概念
  • kafka消费者出现频繁Rebalance
  • 使用Docker-compose安装mysql5.7
  • 29.电影院售票系统(基于springboot和vue的Java项目)
  • 【go从零单排】sorting排序、Sorting by Functions排序方法
  • DPI-MoCo:基于深度先验图像约束的运动补偿重建用于四维锥形束CT (4D CBCT)|文献速递-基于深度学习的病灶分割与数据超分辨率
  • Android Glide动态apply centerCropTransform(),transition withCrossFade动画,Kotlin
  • 【LeetCode】【算法】5. 最长回文子串
  • docker——项目部署
  • LabVIEW车辆侧翻预警系统
  • 工位管理革新:Spring Boot企业级系统
  • SpringBoot沙箱环境支付宝支付
  • C# 阿里云短信接口调用(不使用SDK,单文件完成)
  • Spring Spring Boot 常用注解总结
  • 前端零基础学习Day-Eight
  • 使用 Java 将 byte[] 转换为 File 对象并上传到外部服务器