首页 > 其他分享 >kafka安装

kafka安装

时间:2024-09-24 10:37:24浏览次数:9  
标签:PLAINTEXT CFG 9092 kafka CONTROLLER 9093 安装

新版本支持kraft,并且在后面会彻底抛弃zookeeper

二进制包地址 https://downloads.apache.org/kafka/

解压之后,编辑config/kraft/server.properties文件,改成自己的ip

在Kafka安装目录的bin文件夹下执行以下命令生成一个新的集群ID,如果只有1个机器也没关系,windows的命令在windows文件夹

kafka-storage.sh random-uuid
或者
kafka-storage.bat random-uuid

用上一步生成的UUID格式化Kafka的存储目录:

kafka-storage.bat format -t <uuid> -c ..\..\config\kraft\server.properties
或者
kafka-storage.sh  format -t <uuid> -c ..\..\config\kraft\server.properties

启动Kafka服务器,这里用的是Kraft的目录下的配置

kafka-server-start.bat ..\..\config\kraft\server.properties
或者
kafka-server-start.sh ..\..\config\kraft\server.properties

docker安装单机版的kafka

文件夹下有.env和docker-compose.yml两个文件

.env文件内容如下:

# 把下面的 192.168.252.1 改为你的ip地址
ACCESS_ADDR=192.168.252.1:9092

docker-compose.yml内容如下

version: '3.8'

services:
  broker:
    image: apache/kafka:3.7.0
    container_name: broker
    ports:
      - '9092:9092'
    environment:
      kafka_NODE_ID: 1
      kafka_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
      kafka_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://${ACCESS_ADDR},PLAINTEXT://broker:19092'
      kafka_PROCESS_ROLES: 'broker,controller'
      kafka_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
      kafka_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092'
      kafka_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
      kafka_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
      CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
      kafka_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      kafka_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      kafka_TRANSACTION_STATE_LOG_MIN_ISR: 1
      kafka_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      kafka_LOG_DIRS: '/var/lib/kafka/data'
    volumes:
      - $PWD/data/:/var/lib/kafka/data

  kafka-ui:
    image: provectuslabs/kafka-ui:v0.7.2
    container_name: kafka-ui
    ports:
      - "18080:8080"
    environment:
      kafka_CLUSTERS_0_NAME: 'Local kafka Cluster'
      kafka_CLUSTERS_0_BOOTSTRAPSERVERS: 'broker:19092'
      DYNAMIC_CONFIG_ENABLED: "true"
    depends_on:
      - broker

安装 kafka 集群

.env文件内容如下:

# 把下面的 192.168.251.1 改为你的ip地址
kafka_1_ACCESS_ADDR=192.168.251.1:33001
kafka_2_ACCESS_ADDR=192.168.251.1:33002
kafka_3_ACCESS_ADDR=192.168.251.1:33003

docker-compose.yml内容如下:

version: "3.8"

services:
  kafka-1:
    image: docker.io/bitnami/kafka:3.7
    container_name: kafka-1
    ports:
      - "33001:9092"
    environment:
      # KRaft settings
      - kafka_CFG_NODE_ID=0
      - kafka_CFG_PROCESS_ROLES=controller,broker
      - kafka_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-1:9093,1@kafka-2:9093,2@kafka-3:9093
      - kafka_KRAFT_CLUSTER_ID=abcdefghijklmnopqrstuv
      # Listeners
      - kafka_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      #- kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
      - kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://${kafka_1_ACCESS_ADDR}
      - kafka_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
      - kafka_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - kafka_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      # Clustering
      - kafka_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
    volumes:
      - $PWD/data/kafka-1:/bitnami/kafka
    networks:
      - kafka-net

  kafka-2:
    image: docker.io/bitnami/kafka:3.7
    container_name: kafka-2
    ports:
      - "33002:9092"
    environment:
      # KRaft settings
      - kafka_CFG_NODE_ID=1
      - kafka_CFG_PROCESS_ROLES=controller,broker
      - kafka_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-1:9093,1@kafka-2:9093,2@kafka-3:9093
      - kafka_KRAFT_CLUSTER_ID=abcdefghijklmnopqrstuv
      # Listeners
      - kafka_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      #- kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
      - kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://${kafka_2_ACCESS_ADDR}
      - kafka_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
      - kafka_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - kafka_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      # Clustering
      - kafka_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
    volumes:
      - $PWD/data/kafka-2:/bitnami/kafka
    networks:
      - kafka-net

  kafka-3:
    image: docker.io/bitnami/kafka:3.7
    container_name: kafka-3
    ports:
      - "33003:9092"
    environment:
      # KRaft settings
      - kafka_CFG_NODE_ID=2
      - kafka_CFG_PROCESS_ROLES=controller,broker
      - kafka_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-1:9093,1@kafka-2:9093,2@kafka-3:9093
      - kafka_KRAFT_CLUSTER_ID=abcdefghijklmnopqrstuv
      # Listeners
      - kafka_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      #- kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
      - kafka_CFG_ADVERTISED_LISTENERS=PLAINTEXT://${kafka_3_ACCESS_ADDR}
      - kafka_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
      - kafka_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - kafka_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      # Clustering
      - kafka_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
      - kafka_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
    volumes:
      - $PWD/data/kafka-3:/bitnami/kafka
    networks:
      - kafka-net

  kafka-ui:
    image: provectuslabs/kafka-ui:v0.7.2
    restart: always
    container_name: kafka-ui
    ports:
      - "18080:8080"
    environment:
      - kafka_CLUSTERS_0_NAME=Local-Kraft-Cluster
      - kafka_CLUSTERS_0_BOOTSTRAPSERVERS=kafka-1:9092,kafka-2:9092,kafka-3:9092
      - DYNAMIC_CONFIG_ENABLED=true
      - kafka_CLUSTERS_0_AUDIT_TOPICAUDITENABLED=true
      - kafka_CLUSTERS_0_AUDIT_CONSOLEAUDITENABLED=true
    depends_on:
      - kafka-1
      - kafka-2
      - kafka-3
    networks:
      - kafka-net

networks:
  kafka-net:

第一次使用时,创建一个data文件夹作为数据持久化,并且修改目录data权限:

mkdir data/kafka-1 data/kafka-2 data/kafka-3
chmod -R 0777 data

docker-compose up -d ,启动服务成功后,可以在浏览器打开 http://localhost:18080 查看kafka信息。

标签:PLAINTEXT,CFG,9092,kafka,CONTROLLER,9093,安装
From: https://www.cnblogs.com/qcy-blog/p/18428599

相关文章

  • 安装阿里图文融合AI - AnyText心路历程(安装失败告终,心痛!)
    Windows环境下安装AnyText。大致的安装流程:参考:https://zhidao.baidu.com/question/636353961646106444.htmlwindows打开终端:参考:https://baijiahao.baidu.com/s?id=1792666163328932147&wfr=spider&for=pc安装Ubuntu:参考:https://baijiahao.baidu.com/s?id=1......
  • Anaconda 安装与使用教程
    目录1.[Anaconda简介](#anaconda-简介)2.[安装Anaconda](#安装-anaconda)3.[环境管理](#环境管理)-[创建环境](#创建环境)-[激活与退出环境](#激活与退出环境)-[查看已安装包](#查看已安装包)-[安装与卸载包](#安装与卸载包)-[更新包](#更新包)-[删除环境......
  • Anaconda 安装
    Anaconda安装与使用教程目录1.[什么是Anaconda](#1-什么是anaconda)2.[安装Anaconda](#2-安装anaconda)-[Windows系统](#windows系统)-[macOS系统](#macos系统)-[Linux系统](#linux系统)3.[环境管理](#3-环境管理)-[创建环境](#创建环境)-[激活与退出环境](......
  • Anaconda 安装与使用教程
    1.介绍Anaconda是一个用于科学计算的Python和R的发行版,它包含了众多流行的科学、数学、工程和数据分析包。Anaconda是完全免费的,并且适用于Windows、Mac和Linux平台。它不仅是一个发行版,还提供了一个环境管理系统,可以轻松安装包及其依赖项,并且能够在多个Python......
  • 无法使用我的 pip 安装 mysql-connector
    我正在尝试使用pip安装mysql连接器,但它一直向我显示此错误:连接被'ProxyError('无法连接到代理。',TimeoutError('timedout'))':/simple/mysqlx-connector/|中断||我认为这可能是我所在地区过滤的结果因为我是初学者,不知道如何解决问题或问题是什么。有人可以帮我吗?......
  • 实战篇 | Homebrew 安装使用(Ubuntu 完整实操版)
    支持绝大部分系统软件服务的安装,如ollama,ffmpeg,mysql等在非root用户下安装使用,mac和linux(ubuntu)上都可以使用1.操作步骤1.1确认curl和git是否已安装(可跳过)#分别查看是否安装curl和git(输出版本号则已安装)curl-Vgit-v注:若未安装,可以通过类似......
  • jenkins 2.463安装-教你如何全部下载新手入门插件
    1jkd17上传到服务器并配置2防火墙放行8080firewall-cmd--permanent--zone=public--add-port=8080/tcpsystemctlreloadfirewalld3安装gityuminstallgit4下载jenkins安装包。下载地址:https://get.jenkins.io/redhat/把rpm包上传到服务器5安装:sudorpm-ihje......
  • 最全nginx安装教程,小白必看。
    1、简介【Nginx是个好东西,没有它的话,这前端开发完了后(非vue开发),还得找一个web容器大概率是tomcat。咱就需要配置tomcat,tomcat的配置是比较麻烦的,nginx的配置就简单了好多。】Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Ngi......
  • mysql数据库 - openEuler安装
    文章目录一、openEuler系统介绍1.1、openEuler系统的起源1.2、openEuler系统的特点1.3、openEuler系统的版本支持二、环境搭建2.1、修改静态地址2.2、修改主机名称2.3、关闭防火墙或放通端口2.4、关闭selinux三、安装mysql数据库3.1、安装mysql3.2、配置mysql数据库及......
  • Creo 11.0百度云资源中文版+详细安装教程下载
    如大家所熟悉的,Creo是一款计算机辅助设计(CAD)应用程序,由PTC开发。该套件由应用程序组成,每个应用程序都为产品开发中的用户角色提供一组独特的功能。Creo在Windows系统上运行并兼容,提供用于3DCAD参数化特征实体建模、3D直接建模、2D正交视图、有限元分析和仿真、原理图设计......