当前位置:   article > 正文

【kafka】kafka集群搭建_kafka集群必须三台吗

kafka集群必须三台吗


kafka集群搭建需要的环境

  1. 至少需要三台服务器或者虚拟机
  2. 需要关闭防火墙
  3. 因为卡夫卡是scala语言写的,所需要安装Java虚拟机,需要提前安装好jdk
  4. 因为kafka集群依赖zookeeper,所以安装kafka前需要提前搭建好zookeeper集群,新版本kafka不需要

kafka下载

  1. 可以进去apache官方网站https://www.apache.org/点击Project -> Project List 找到 kafka 下载
  2. 也可以进入官方链接https://archive.apache.org/dist/kafka/进行下载

kafka集群搭建

  1. 将kafka的压缩包分别上传到三台服务器的某一文件夹中
[root@mtjg-149 tools]# ll
总用量 94120
## 压缩包中3.0.0是kafka的版本,2.12是scala的版本
-rw-r--r--. 1 root root 86486610 123 09:02 kafka_2.12-3.0.0.tgz
  • 1
  • 2
  • 3
  • 4
  1. 解压kafka压缩包
[root@mtjg-149 tools]# tar -zxvf kafka_2.12-3.0.0.tgz 
[root@mtjg-149 tools]# ll
总用量 94120
drwxr-xr-x. 7 root root      105 99 2021 kafka_2.12-3.0.0
-rw-r--r--. 1 root root 86486610 123 09:02 kafka_2.12-3.0.0.tgz
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 修改kafka的配置文件
    1. 查看配置文件列表
    [root@mtjg-149 tools]# cd kafka_2.12-3.0.0/config/
    [root@mtjg-149 config]# ll
    总用量 72
    ## 前缀为connect的是kafka自己的连接管道的配置文件一般不用,使用flume
    -rw-r--r--. 1 root root  906 99 2021 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 99 2021 connect-console-source.properties
    -rw-r--r--. 1 root root 5475 99 2021 connect-distributed.properties
    -rw-r--r--. 1 root root  883 99 2021 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 99 2021 connect-file-source.properties
    -rw-r--r--. 1 root root 2103 99 2021 connect-log4j.properties
    -rw-r--r--. 1 root root 2540 99 2021 connect-mirror-maker.properties
    -rw-r--r--. 1 root root 2262 99 2021 connect-standalone.properties
    ## kafka消费者的配置文件
    -rw-r--r--. 1 root root 1221 99 2021 consumer.properties
    ## kafka代替zookeeper的配置
    drwxr-xr-x. 2 root root  102 99 2021 kraft
    ## kafka日志的配置文件,一般不用去改
    -rw-r--r--. 1 root root 4674 99 2021 log4j.properties
    ## kafka生产者配置文件
    -rw-r--r--. 1 root root 1925 99 2021 producer.properties
    ## kafka服务配置文件,核心文件,主要改动的就是该文件
    -rw-r--r--. 1 root root 6849 99 2021 server.properties
    -rw-r--r--. 1 root root 1032 99 2021 tools-log4j.properties
    -rw-r--r--. 1 root root 1169 99 2021 trogdor.conf
    -rw-r--r--. 1 root root 1205 99 2021 zookeeper.properties
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    1. 编辑server.properties配置文件
    [root@mtjg-149 config]# vim server.properties 
    
    ## kafka注册在zookeeper上的唯一标识,这里必须填写一个唯一的数字,不能和其他kafka重复
    broker.id=0
    ## kafka 监听,搭建集群时候需要配置,就设置自己的hostname
    listeners=PLAINTEXT://192.168.55.149:9092
    ## 处理网络请求的线程数量
    num.network.threads=3
    ## 处理磁盘IO的线程数量
    num.io.threads=8
    ## 发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    ## 接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    ## 请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    ## kafka运行日志(数据)存放的路径,路径不需要提前创建,kafka会自动创建。
    ## 可以配置多个磁盘路径,路径与路径间用","分隔
    log.dirs=/opt/tools/kafka_2.12-3.0.0/data
    ## topic在当前的broker上的分区个数,搭建集群时候最好配置
    num.partitions=3
    ## 用来恢复和清理data下数据的线程数量
    num.recovery.threads.per.data.dir=1
    ## 每个topic创建时的副本数,默认为1个副本,搭建集群时最好配置
    offsets.topic.replication.factor=2
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    ## segment文件保留的最长时间
    log.retention.hours=168
    ## 每个segment文件的大小,默认最大1G
    log.segment.bytes=1073741824
    ## 检查过期数据的时间,默认5分钟检查一次数据是否过期
    log.retention.check.interval.ms=300000
    ## zookeeper的链接地址,注意给zookeeper添加一个根目录
    zookeeper.connect=192.168.55.149:2181,192.168.55.151:2181,192.168.55.152:2181/kafka
    ## zookeeper的链接超时时间
    zookeeper.connection.timeout.ms=18000
    ## 
    group.initial.rebalance.delay.ms=0
    # 彻底删除kafka topic
    delete.topic.enable=true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
  2. 给kafka配置环境变量
[root@mtjg-152 config]# vim /etc/profile
## 添加一下内容
# kafka
export KAFKA_HOME=/opt/tools/kafka_2.12-3.0.0
export PATH=$PATH:$KAFKA_HOME/bin
## 执行source命令
[root@mtjg-152 config]# source /etc/profile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 启动kafka
[root@mtjg-149 config]# cd ../bin/
[root@mtjg-149 bin]# ls
connect-distributed.sh        kafka-consumer-perf-test.sh  kafka-producer-perf-test.sh         kafka-verifiable-consumer.sh
connect-mirror-maker.sh       kafka-delegation-tokens.sh   kafka-reassign-partitions.sh        kafka-verifiable-producer.sh
connect-standalone.sh         kafka-delete-records.sh      kafka-replica-verification.sh       trogdor.sh
kafka-acls.sh                 kafka-dump-log.sh            kafka-run-class.sh                  windows
kafka-broker-api-versions.sh  kafka-features.sh            kafka-server-start.sh               zookeeper-security-migration.sh
kafka-cluster.sh              kafka-get-offsets.sh         kafka-server-stop.sh                zookeeper-server-start.sh
kafka-configs.sh              kafka-leader-election.sh     kafka-storage.sh                    zookeeper-server-stop.sh
kafka-console-consumer.sh     kafka-log-dirs.sh            kafka-streams-application-reset.sh  zookeeper-shell.sh
kafka-console-producer.sh     kafka-metadata-shell.sh      kafka-topics.sh
kafka-consumer-groups.sh      kafka-mirror-maker.sh        kafka-transactions.sh
[root@mtjg-149 bin]# kafka-server-start.sh
## 如果忘记后面写什么,下面有提示
USAGE: /opt/tools/kafka_2.12-3.0.0/bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]*
[root@mtjg-149 bin]# kafka-server-start.sh -daemon ../config/server.properties
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  1. 查看 kafka 是否启动
[root@mtjg-149 bin]# jps
## 如果包含kafka则说明启动成功
17999 Kafka
  • 1
  • 2
  • 3
  1. kafka的关闭
[root@mtjg-152 bin]# kafka-server-stop.sh
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/661620
推荐阅读
相关标签
  

闽ICP备14008679号