侧边栏壁纸
博主头像
zyixin

当你觉得为时已晚的时候,恰恰是最早的时候

  • 累计撰写 66 篇文章
  • 累计创建 0 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

搭建kafka集群

zyixin
2022-04-01 / 0 评论 / 0 点赞 / 2,208 阅读 / 4,465 字
温馨提示:
本文最后更新于 2022-04-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

环境准备
环境准备

修改hosts文件,进行解析

1. 搭建zookeeper集群

搭建kafka集群,需要先搭建zookeeper集群,搭建zookeeper集群,依赖于jdk

1.1 下载安装jdk8

下载jdk地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

1.2 创建test用户,上传jdk包到服务器并解压安装包

[root@ecs0001 setup]# useradd test
[root@ecs0001 setup]# su - test
上传jdk软件包
[test@ecs0001 setup]# ls
jdk-8u144-linux-x64.tar.gz
[test@ecs0001 setup]# tar -zxvf jdk-8u144-linux-x64.tar.gz
[test@ecs0001 setup]# ls
jdk1.8.0_144  jdk-8u144-linux-x64.tar.gz

1.3 修改.bash_profile配置jdk,使环境变量生效

[test@ecs0001 ~]# vim .bash_profile
export JAVA_HOME=/home/test/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin

[test@ecs0001 ~]# source .bash_profile
[test@ecs0001 ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

1.4 下载zookeeper

下载地址: https://zookeeper.apache.org/releases.html
这里使用的是3.6.3

1.5 上传zookeeper软件包到服务器,解压并重命名

[test@ecs0001 ~]# ls
apache-zookeeper-3.6.3-bin.tar.gz
[test@ecs0001 ~]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
[test@ecs0001 ~]# ls
apache-zookeeper-3.6.3
[test@ecs0001 ~]#  mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3

1.6 修改配置文件

[test@ecs0001 ~]# cd zookeeper-3.6.3/conf/
[test@ecs0001 conf]# cp zoo_sample.cfg zoo.cfg
[test@ecs0001 conf]# vim zoo.cfg
dataDir=/home/test/zookeeper/data
dataLogDir=/home/test/zookeeper/log
clientPort=2181
server.1:kafka01:2182:3181
server.2:kafka02:2182:3181
server.3:kafka03:2182:3181

配置说明:
dataDir=/home/test/zookeeper/data
dataLogDir=/home/test/zookeeper/log
为zookeeper数据和日志的路径,需要在启动zookeeper之前创建好。
clientPort=2181
为服务端口,服务器开放该端口即可或者根据需求修改
server.1:kafka01:2182:3181
server.2:kafka02:2182:3181
server.3:kafka03:2182:3181
为各个zookeeper服务器间的端口配置信息,server.1表示该服务器zookeeper的id号为1(后面会讲到,zookeeper的id号从1开始,且与后面讲到的myid文件一一对应),Mongo01为服务器hostname,2182、3181为zookeeper集群内部通信端口

1.7 创建配置文件dataDir、dataLogDir路径

[test@ecs0001 ~]# mkdir -pv /home/test/zookeeper/data
[test@ecs0001 ~]# mkdir -pv /home/test/zookeeper/log

并在dataDir路径下创建名为myid的文件,并添加内容 1 (该处myid对应的就是配置文件里的server.1)
[test@ecs0001 ~]# echo 1 > /home/test/zookeeper/data/myid

1.8 修改日志配置文件

[test@ecs0001 ~]# cd zookeeper-3.6.3/conf/
[test@ecs0001 conf]# vim log4j.properties
zookeeper.root.logger=INFO, ROLLINGFILE     //修改这行,保存退出

[test@ecs0001 conf]# cd ../bin/
[test@ecs0001 bin]$ vim zkEnv.sh
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="/home/test/zookeeper/log"
fi

if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
修改这两部分内容

1.9 复制到zookeeper到其他服务器

kafka01上zookeeper配置完毕,在kafka02、kafka03上创建用户、配置JDK环境,将kafka01上配置好的zookeeper安装包直接拷贝到kafka02和kafka03上,并将myid文件的内容分别修改为2和3

1.10 启动zookeeper

分别启动三台服务器,进入zookeeper-3.6.3路径下

[test@ecs0001 ~]$ cd zookeeper-3.6.3/bin/
bin/zkServer.sh start

1.11 检测zookeeper启动状态

三台启动完成后 ./zkServer.sh status 看到一下内容即为集群成功 两台服务器是 follower 一台服务器是 leader

[test@ecs0001 bin]# ./zkServer.sh status
Mode: follower
[test@ecs0002 bin]# ./zkServer.sh status
Mode: leader
[test@ecs0003 bin]# ./zkServer.sh status
Mode: follower

2. kafka集群搭建

下载kafka,这里是中文官网地址 http://kafka.apachecn.org/
下载的时候使用二进制文件

2.1 上传kafka软件包到服务器,并解压

[test@ecs0001 ~]# ls kafka_2.11-0.8.2.2.tgz
kafka_2.11-0.8.2.2.tgz
[test@ecs0001 ~]# tar -zxvf kafka_2.11-0.8.2.2.tgz
[test@ecs0001 ~]# ls
kafka_2.11-0.8.2.2

2.2 修改配置文件

[test@ecs0001 ~]# cd kafka_2.11-0.8.2.2/config/
[test@ecs0001 config]# vim server.properties
broker.id=0
port=9092
host.name=kafka01
log.dirs=/home/test/kafka_2.11-0.8.2.2/log
log.cleaner.enable=true
zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181

主要修改上面几项
解释:broker.id(标示当前server在集群中的id,从0开始),host.name(当前的server host name),zookeeper.connect(连接的zookeeper集群),log.dirs(log的存储目录,记得对应的去创建这个目录)等,其他的一些配置可以看相应的注释

2.3 复制kafka包到其他服务器

把修改好的kafka安装包拷贝到Mongo02和Mongo03上,修改每台server对应的配置文件,主要是修改其中的broker.idhost.name 属性:broker.id从0开始递增,每台server必须唯一

2.4 启动kafka

[test@ecs0001 bin]# ./kafka-server-start.sh -daemon ../config/server.properties

检查是否启动成功使用 ps -ef | grep kafka  显示一下内容即为启动成功
[test@ecs0001 bin]# ps -ef| grep kafka

2.5 kafka的一些操作

创建topic:

[test@ecs0001 bin]# ./kafka-topics.sh --create --zookeeper kafka01:2181,kafka02:2181,kafka03:2181 --replication-factor 3 --partitions 1 --topic test

查看topic:

[test@ecs0001 bin]# ./kafka-topics.sh --zookeeper kafka01:2181,kafka02:2181,kafka03:2181 --list
test

创建producer:

[test@ecs0001 bin]# ./kafka-console-producer.sh --broker-list kafka01:9092,kafka02:9092,kafka03:9092 --topic test_topic

创建consumer:

[test@ecs0002 bin]# ./kafka-console-consumer.sh --zookeeper kafka01:2181,kafka02:2181,kafka03:2181 --topic test_topic

通过在创建好的producer控制台输入信息,在consumer的控制台检测输出来测试,如果可以同步接受到信息就说明简单的kakfa 集群搭好了,另外可以根据项目的实际需求进一步做配置。

0

评论区