【kafka】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. 解压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. 修改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. 编辑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
    
  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. 启动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. 查看 kafka 是否启动
[root@mtjg-149 bin]# jps
## 如果包含kafka则说明启动成功
17999 Kafka
  1. kafka的关闭
[root@mtjg-152 bin]# kafka-server-stop.sh


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部