Kafka集群环境的搭建与详解

本文介绍了如何在三台CentOS7虚拟机上搭建Zookeeper和Kafka集群环境。首先,确保每台机器安装了JDK8,然后分别配置Zookeeper,包括设置myid和zoo.cfg。接着,分发和启动Zookeeper服务。最后,安装KafkaBroker,配置server.properties,并启动服务,完成Kafka集群的搭建。
摘要由CSDN通过智能技术生成

虚拟机准备

准备三台虚拟机(Zookeeper要求奇数台),操作系统我们选择CentOS7。后面会介绍分别安装JDK8、Zookeeper 和 Kafka的步骤。

三台服务器及对应配置如下所示:

主机名IP地址myidbroker.id
hadoop101192.168.88.1011101
hadoop102192.168.88.1022102
hadoop103192.168.88.1033103

注:需要修改三台虚拟机的主机名,并关闭防火墙

安装Java环境

在安装 Zookeeper 和 Kafka 之前,需要先在每台服务器上安装Java环境。这里推荐安装Java8,我们从官网上下载进行安装。

下载JDK8

官方下载页面:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

我下载的版本:jdk-8u241-linux-x64.tar.gz

将下载好的jdk文件传至/opt目录中

安装JDK8

解压至/usr/local目录,解压后jdk目录为:/usr/local/jdk1.8.0_241

tar zxvf /opt/jdk-8u241-linux-x64.tar.gz -C /usr/local

设置环境变量

打开/etc/profile文件

vi /etc/profile

在最后添加环境变量

JAVA_HOME=/usr/local/jdk1.8.0_241
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

刷新配置,使其生效

source /etc/profile

验证

通过检查版本命令来验证是否安装成功

java -version

Zookeeper集群环境搭建

Kafka 使用 Zookeeper 来保存集群的元数据信息和消费者信息,所以要先安装 Zookeeper。我们在这里介绍其集群环境的安装,下面来看详细步骤。

下载Zookeeper

官网下载页面:https://zookeeper.apache.org/releases.html

我下载的版本:Apache Zookeeper 3.6.0

将下载好的文件传至/opt目录中

安装Zookeeper

解压至/usr/local目录下,解压后zookeeper目录为/usr/local/apache-zookeeper-3.6.0-bin

tar -zxvf /opt/apache-zookeeper-3.6.0-bin.tar.gz -C /usr/local

配置zookeeper集群环境

/usr/local/apache-zookeeper-3.6.0-bin目录下创建datalogs目录

cd /usr/local/apache-zookeeper-3.6.0-bin
mkdir data
mkdir logs
配置myid

zookeeper集群需要配置myid,用于指明自己的ID。该ID需要保持唯一,并且必须是一个整数,可以不连续。

data目录中创建myid文件,并编辑输入编号(每台虚拟机myid见上面表格)

touch data/myid
vi data/myid
配置zoo.cfg

zoo.cfg为zookeeper的配置文件,具体配置如下。

conf目录下有一个示例的配置文件zoo_sample.cfg,我们复制一份为zoo.cfg,并编辑

cp conf/zoo_sample.cfg conf/zoo.cfg
vi conf/zoo.cfg

具体配置如下:

tickTime=2000
clientPort=2181
initLimit=20
syncLimit=5
dataDir=/usr/local/apache-zookeeper-3.6.0-bin/data
dataLogDir=/usr/local/apache-zookeeper-3.6.0-bin/logs

server.1=hadoop101:2881:3881
server.2=hadoop102:2881:3881
server.3=hadoop103:2881:3881

initLimit 用于Leader节点与Follower节点之间建立初始化连接的时间上限。该配置为tickTime的倍数,所以上面配置的initLimit=20*2000ms。

syncLimit 表示允许Follower节点与Leader节点处于不同步状态的时间上限。该配置为tickTime的倍数,所以上面配置的syncLimit=5*2000ms。

clientPort为客户端连接的TCP端口

上面配置中列出了群组中所有服务器的地址,其地址遵循 server.X=hostname:peerPort:leaderPort 格式,其中:

  • X为服务器的ID,即上面配置的myid
  • hostname为服务器主机名
  • peerPort用于节点间通讯的TCP端口
  • leaderPort用于Leader选举的TCP端口
分发至其他虚拟机

上面操作在一台虚拟机中进行即可,配置好后,分发至另外两台虚拟机(scp命令需要输入密码)

scp -r /usr/local/apache-zookeeper-3.6.0-bin root@hadoop102:/usr/local/
scp -r /usr/local/apache-zookeeper-3.6.0-bin root@hadoop103:/usr/local/

注:分发后要修改对应的myid

启动Zookeeper服务

启动

sh bin/zkServer.sh start

查看状态

sh bin/zkServer.sh status

三台虚拟机都启动后,查看状态,其中有一台Modeleader,另外台是follower

至此 zookeeper 集群环境搭建完成~

Kafka集群安装

配置好 Java 和 Zookeeper 后,接下来就可以安装 Kafka 了。本文使用的版本为kafka_2.13-2.5.0.tgz,其中2.13为Scala版本,2.5.0为Kafka版本。

一个独立的Kafka服务器被称为Broker,而一个Kafka集群由若干个Broker组成。下面来看Kafka Broker的安装和集群环境的配置。

下载Kafka

官网下载页面:https://kafka.apache.org/downloads

我下载的版本:kafka_2.13-2.5.0.tgz

将下载好的文件传至/opt目录中

安装Kafka Broker

解压至/usr/local目录下,解压后kafka目录为/usr/local/kafka_2.13-2.5.0

tar -zxvf /opt/kafka_2.13-2.5.0.tgz -C /usr/local

配置broker

/usr/local/kafka_2.13-2.5.0目录中创建data文件夹,用于存放kafka的消息日志。

cd /usr/local/kafka_2.13-2.5.0
mkdir data
配置server.properties

打开server.properties配置文件

vi config/server.properties

修改如下配置,其他内容保持不变

port=9092
broker.id=101
log.dirs=/usr/local/kafka_2.13-2.5.0/data
zookeeper.connect=hadoop101:2181/kafka,hadoop102:2181/kafka,hadoop103:2181/kafka
  1. port为Kafka的端口

  2. broker.id为每个broker的标识符,可以设置为任意整数,这个值必须在整个kafka集群中保持唯一。

  3. zookeeper.connect用于连接zookeeper,该配置用逗号分隔一组hostname:port/path列表,每一部分的含义如下:

  • hostname表示zookeeper服务器的主机地址,或IP地址
  • port表示zookeeper的客户端端口clientPort
  • /path表示kafka在zookeeper中的路径,若该路径不存在,broker会在启动时自动创建。该路径是可选项,默认使用根路径。
  1. log.dirs用于存储消费数据,可以有多个路径,中间使用逗号隔开。如果使用了多个路径,那么broker将会根据“最少使用”原则,把同一分区的日志片段保存到同一路径下(“最少使用”原则指的是日志片段数目,而不是磁盘大小)。
分发至其他虚拟机

上面操作在一台虚拟机中进行即可,配置好后,分发至另外两台虚拟机(scp命令需要输入密码)

scp -r /usr/local/kafka_2.13-2.5.0 root@hadoop102:/usr/local/
scp -r /usr/local/kafka_2.13-2.5.0 root@hadoop103:/usr/local/

注:分发后要修改对应的broker.id

启动Kafka服务

三台虚拟机都执行如下启动命令

sh bin/kafka-server-start.sh -daemon config/server.properties

至此 kafka 集群环境搭建完成~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值