首页 > 系统相关 >Linux部署kafka集群

Linux部署kafka集群

时间:2022-11-25 15:11:45浏览次数:45  
标签:-- zookeeper kafka topic 集群 Linux 服务器 data

Linux部署kafka集群(亲测有效)

原创 陈肖萧晓 若愚Linux 2022-11-23 08:00 发表于山东 收录于合集 #linux7个 #kafka1个 #集群1个

Linux部署kafka(亲测有效)

网上有太多太多抄来抄去的教程,要不就是少各种环境的说明,要不就是各种配置根本就是错误的,要不就是只说一部分,要不就是防火墙网络环境不说,导致很多同学按照各大博客网站的教程,根本搭建不起来kafka集群。

我自己按照网上的教程几乎没有成功过,都是遇到问题各种搜索,很多教程都没有java、zookeeper、防火墙等设置。

现在我把亲自在服务器上搭建的全部过程写成文章供大家参考。

环境准备

操作系统版本:centos 7.9.2009

服务器列表:(需修改为自己的ip地址)

  • • 192.168.229.227 server01

  • • 192.168.229.228 server02

  • • 192.168.229.229 server02

java安装包:jdk-8u351-linux-x64.tar.gz

zooker安装包:zookeeper-3.4.10.tar.gz

kafka安装包:kafka_2.11-0.11.0.1.tgz

#安装包存放目录
mkdir /root/software

#zookeeper、kafka数据存放目录
mkdir -p /data/zookeeper/{data,logs}
mkdir -p /data/kafka/data

#软件安装目录为
/opt

#/etc/hosts添加主机信息
vim /etc/hosts

192.168.229.227 server01
192.168.229.228 server02
192.168.229.229 server02

#验证主机信息是否添加成功
ping server01
ping server02
ping server03

图片

一、软件下载

关注公众号若愚Linux回复:kafka集群进行下载

将下载好的软件放到/root/software

二、安装java环境(所有服务器)

cd /root/software
#解压java压缩包
tar -zxvf jdk-8u351-linux-x64.tar.gz -C /opt
mv /opt/jdk1.8.0_351 /opt/jdk1.8

#配置环境变量
vim /etc/profile

#在文件尾部追加以下内容
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#让环境变量生效
source /etc/profile

#检查是否安装成功
java -version

图片

三、部署zookeeper集群(所有服务器)

1、安装zookeeper

cd /root/software

#解压zookeeper压缩包
tar -zxvf zookeeper-3.4.10.tar.gz -C /opt
mv /opt/zookeeper-3.4.10 /opt/zookeeper

#配置环境变量
vim /etc/profile

#在文件尾部追加以下内容
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

#让环境变量生效
source /etc/profile

2、配置zookeeper配置文件

#拷贝zookeeper配置文件
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
clientPort=2181
maxClientCnxns=60
dataLogDir=/data/zookeeper/logs
server.1=server01:2888:3888
server.2=server02:2888:3888
server.3=server03:2888:3888

3、开启防火墙端口

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent
firewall-cmd --reload

4、节点创建myid文件,节点对应id

#设置myid文件是为了和zoo.cfg文件中的server.1、server.2、server.3对应

#server01服务器
cd /data/zookeeper/data
echo "1" > myid

#server02服务器
cd /data/zookeeper/data
echo "2" > myid

#server03服务器
cd /data/zookeeper/data
echo "3" > myid

5、启动zookeeper集群

#启动zookeeper集群
zkServer.sh start

#查看是否启动成功
netstat -tnlp|grep 2181

图片

四、安装kafka集群(所有服务器)

1、安装kafka集群

cd /root/software

#解压kafka压缩包
tar -zxvf kafka_2.11-0.11.0.1.tgz -C /opt
mv /opt/kafka_2.11-0.11.0.1 /opt/kafka

#配置环境变量
vim /etc/profile

#在文件尾部追加以下内容
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

#让环境变量生效
source /etc/profile

2、修改配置文件(每台服务器分别配置)

集群服务器中的配置文件只有broker.id=编号这一行不同

为了防止有的同学忘记修改、忘记修改、忘记修改,这里把三台服务器的配置文件都写出来了。

server01服务器

#broker 的全局唯一编号,不能重复
broker.id=0
#开启删除 topic 功能
delete.topic.enable=true
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径(实际是kafka的topic数据)
log.dirs=/data/kafka/data
#topic 在当前 broker 上的分区个数
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址
zookeeper.connect=server01:2181,server02:2181,server03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

server02服务器

#broker 的全局唯一编号,不能重复
broker.id=1
#开启删除 topic 功能
delete.topic.enable=true
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径(实际是kafka的topic数据)
log.dirs=/data/kafka/data
#topic 在当前 broker 上的分区个数
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址
zookeeper.connect=server01:2181,server02:2181,server03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

server03服务器

#broker 的全局唯一编号,不能重复
broker.id=2
#开启删除 topic 功能
delete.topic.enable=true
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径(实际是kafka的topic数据)
log.dirs=/data/kafka/data
#topic 在当前 broker 上的分区个数
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址
zookeeper.connect=server01:2181,server02:2181,server03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

3、开启防火墙端口

firewall-cmd --add-port=9092/tcp --permanent
firewall-cmd --reload

4、启动集群

依次在 server01、server02、server03 节点上启动 kafka

cd /opt/kafka
kafka-server-start.sh -daemon config/server.properties

netstat -tnlp|grep 9092

 

5、关闭集群

kafka-server-stop

五、kafka命令行操作

1、创建topic

选项说明: 

--topic 定义 topic 名 

--replication-factor 定义副本数 

--partitions 定义分区数,一般有几台服务器写几,比如有3台服务器就写3

kafka-topics.sh  --zookeeper server01:2181 --create --replication-factor 2 --partitions 3 --topic test

2、查看当前服务器中的所有 topic

kafka-topics.sh --zookeeper server01:2181 --list

图片

3、删除 topic

kafka-topics.sh  --zookeeper server01:2181 --delete  --topic test

4、发送消息

kafka-console-producer.sh --broker-list server01:9092 --topic test

图片

5、消费消息

kafka-console-consumer.sh --zookeeper server01:2181 --topic test

图片

标签:--,zookeeper,kafka,topic,集群,Linux,服务器,data
From: https://www.cnblogs.com/cherishthepresent/p/16925223.html

相关文章

  • Linux基础-Vim(二)常用功能
    一、可视区块(Visual Block)       上一期我们讲vim操作都是以字符或行为单位进行的,在vim还有一个以区块为单位进行操作的方法,即可视区块操作。       下面......
  • Linux基础-Vim(一)入门和常用命令
    ps:这是本公众号第一篇推文,小白第一次写作,希望大家支持,如有错误,望批评指正。在所有的UNIX-Like系统中都会内建vi文本编辑器,vi是老式的文本编辑器,其他的文本编辑器则不一定会......
  • linux网络命令
    1.env——查看环境变量资源可以查看到当前用户环境配置  2.ifconfig可以查看网卡数量,IP地址、mac地址 3. ps-ef查看所有进程  4.ss-t-a显示所有tcp......
  • linux 安装 安全狗 步骤
    先下载安装包wgethttp://download.safedog.cn/safedog_linux64.tar.gz1234567<emid="__mceDel">ls tarxzvfsafedog_linux64.tar.gzls cdsa......
  • 面试官问:为什么kafka这么快,又能保证消息不丢失?
    小菜鸡最近在疯狂面试中,就是为了能拿到一份满意的offer,这不上周又去头条受虐了。面试过程中,由于小菜鸡的充分准备(letcode各种刷),各种算法题不在话下,顺利的通过的头条变态的算......
  • Kafka是什么-第一篇
    前言如果有幸目睹过系统从零到一的演变过程,大家估计都会有一种感叹,就是随着业务复杂度和流量的不断上升,系统变得越来越难以维护,面对高额的维护成本,攻城师们不得不对现有架构......
  • 使用Xenon实现MySQL高可用集群
    使用Xenon实现MySQL高可用集群1、Xenon介绍 https://github.com/radondb/xenon#VIP就是对外提供服务的IP,比如jdbc配置就是写这个VIPxenon架构介绍 ,每个MySQL节点安装......
  • linux命令 find
    find是Linux中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode号等来搜索文件。但是find命令是直接在硬盘中进行搜索的,如果指定的搜索......
  • linux命令 grep
    Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范......
  • Linux下centOS和redhat测试数据usleep_nanosleep_select
    系统不一样,gcc版本也不一样。其中centOS刚租任不久的没有甚么用户进程运行。redhat测试服务器有用户进程在后台运行//编译gcctest.c//运行./a.out#include<stdio.h>#inc......