【Kafka】Linux本地和Docker安装Kafka

news2024/9/21 2:40:44

目录

  • Linux本地安装kafka
    • java环境配置
    • Zookeeper的安装配置
    • Kafka的安装与配置
    • 生产与消费
  • Docker安装kafka
    • Zookeeper安装
    • Kafka安装

Linux本地安装kafka

java环境配置

1、上传jdk-8u261-linux-x64.rpm到服务器并安装:

rpm -ivh jdk-8u261-linux-x64.rpm

2、配置环境变量:

vim /etc/profile 1
export JAVA_HOME=/usr/java/jdk1.8.0_261-amd647879 
export PATH=$PATH:$JAVA_HOME/bin
# 生效 
source /etc/profile 
# 验证 
java -version

Zookeeper的安装配置

1、上传zookeeper-3.4.14.tar.gz到服务器

2、解压到/opt:

tar -zxf zookeeper-3.4.14.tar.gz -C /opt
cd /opt/zookeeper-3.4.14/conf 
# 复制zoo_sample.cfg命名为zoo.cfg 
cp zoo_sample.cfg zoo.cfg 
# 编辑zoo.cfg文件 
vim zoo.cfg

3、修改Zookeeper保存数据的目录,dataDir:

dataDir=/var/lagou/zookeeper/data

4、编辑/etc/profile:

  • 设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置;
  • ZOOKEEPER_PREFIX指向Zookeeper的解压目录;
  • 将Zookeeper的bin目录添加到PATH中:
export Z00KEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH=$PATH:$Z00KEEPER_PREFIx/bin
export Z00_L0G_DIR=/var/lagou/zookeeper/log

5、使配置生效:

source /etc/profile

6、验证:

zkServer.sh status

Kafka的安装与配置

1、上传kafka_2.12-1.0.2.tgz到服务器并解压:

tar -zxf kafka_2.12-1.0.2.tgz -C /opt

2、配置环境变量并生效:

vim /etc/profile
export KAFKA_HOME=/opt/kafka_2.12-1.0.2
export PATH=$PATH:$KAFKA_HOME/bin

3、配置/opt/kafka_2.12-1.0.2/config中的server.properties文件:

Kafka连接Zookeeper的地址,此处使用本地启动的Zookeeper实例,连接地址是localhost:2181,后面的 myKafka 是Kafka在Zookeeper中的根节点路径:

在这里插入图片描述

4、启动Zookeeper:

zkServer.sh start

5、确认Zookeeper的状态:

在这里插入图片描述

6、启动Kafka:

进入Kafka安装的根目录,执行如下命令:

在这里插入图片描述

启动成功,可以看到控制台输出的最后一行的started状态:

INF0 [KafkaServer id=0] started(kafka.server.KafkaServer)

7、查看Zookeeper的节点:

在这里插入图片描述

8、此时Kafka是前台模式启动,要停止,使用Ctrl+C。

如果要后台启动,使用命令:

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

查看Kafka的后台进程:

ps aux | grep kafka

停止后台运行的Kafka:

kafka-server-stop.sh

生产与消费

1、kafka-topics.sh 用于管理主题

# 列出现有的主题
kafka-topics.sh --list --zookeeper localhost:2181/myKafka
# 创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本
kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topic_1 --partitions 1 --replication-factor 1
# 查看分区信息
kafka-topics.sh --zookeeper localhost:2181/myKafka --list
# 查看指定主题的详细信息
kafka-topics.sh --zookeeper localhost:2181/myKafka -- describe --topic topic_1
# 删除指定主题
kafka-topics.sh --zookeeper localhost:2181/myKafka --delete --topic topic_1

2、kafka-console-producer.sh用于生产消息

# 开启生产者
kafka-console-producer.sh --topic topic_1 --broker-list localhost:9092

3、kafka-console-consumer.sh用于消费消息

# 开启消费者
kafka-console-consumer.sh --bootstrap-server localhost:9092 - -topic topic_1
#  开启消费者方式二,从头消费,不按照偏移量消费
kafka-console-consumer.sh --bootstrap-server localhost:9092 - -topic topic_1 --from-beginning

Docker安装kafka

Zookeeper安装

1、拉取zookeeper 镜像

docker pull zookeeper 

2、运行zookeeper 服务

docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /mydata/zookeeper/data:/data -v /mydata/zookeeper/conf:/conf -v /mydata/zookeeper/logs:/datalog zookeeper

参数:

  • --log-driver json-file:指定日志驱动程序为json-filejson-file是一个日志驱动程序,它将日志记录为JSON格式的文件。
  • --log-opt max-size=100m:设置每个日志文件的最大大小为100MB。当单个日志文件达到这个大小时,Docker会自动开始写入新的日志文件。
  • --log-opt max-file=2:设置最多保留2个日志文件。当达到这个限制时,旧的日志文件会被自动删除,以保留最新的2个日志文件。
  • --name zookeeper:容器名字
  • -p 2181:2181:映射端口
  • -v /mydata/zookeeper/data:/data:挂载Zookeeper的数据目录,存储其运行时数据,包括事务日志和快照
  • -v /mydata/zookeeper/conf:/conf:挂载Zookeeper配置文件
  • -v /mydata/zookeeper/logs:/datalog:挂载Zookeeper的日志文件

日志相关的参数只是测试使用,实际根据需求调整。

本机修改文件路径后:

docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /Users/fltech/docker/zookeeper/data:/data -v /Users/fltech/docker/zookeeper/conf:/conf -v /Users/fltech/docker/zookeeper/logs:/datalog zookeeper

3、验证是否启动成功

进入zookeeper容器

docker exec -it 容器id /bin/bash

找到配置文件位置

cat /conf/zoo.cfg

查看zookeeper状态

zkServer.sh status

显示如下:

Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone

说明Zookeeper启动成功,运行模式是单机版。

Kafka安装

1、拉取kafka 镜像

docker pull kafka

2、运行kafka

docker run -d  --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /mydata/kafka/conf:/opt/kafka/conf -v /mydata/kafka/data:/tmp/kafka-logs -v /mydata/kafka/logs:/logs wurstmeister/kafka

kafka运行时,指定需要的环境变量

  • -e KAFKA_BROKER_ID=0:配置BROKER_ID,默认第一台是0,单机模式下只能是0
  • -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka:配置zookeeper的地址及管理kafka的路径,注意IP使用公网地址
  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:909 :把kafka的地址端口注册给zookeeper
  • -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 配置kafka的监听端口
  • -v /etc/localtime:/etc/localtime: 容器时间同步虚拟机的时间

挂载文件根据需要:

-v /mydata/kafka/conf:/opt/kafka/conf:挂载配置文件

-v /mydata/kafka/data:/tmp/kafka-logs:挂载数据目录,存储其运行时数据,包括日志文件和元数据

-v /mydata/kafka/logs:/logs:挂载日志

本机修改文件路径后:

docker run -d  --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /Users/fltech/docker/kafka/conf:/opt/kafka/conf -v /Users/fltech/docker/kafka/data:/tmp/kafka-logs -v /Users/fltech/docker/kafka/logs:/logs wurstmeister/kafka
  1. 验证是否启动成功

进入容器:

docker exec -it kafka1 bash

到保存脚本的目录:

cd /opt/kafka_2.13-2.7.1/bin

创建一个topic:

/opt/kafka_2.13-2.7.1/bin > kafka-topics.sh --create --zookeeper 192.168.1.21:2181/kafka --replication-factor 1 --partitions 1 --topic topicDemo
Created topic topicDemo.

能够成功创建,说明安装成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1398738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电力能源实景三维可视化合集,智慧电网数字孪生

电力能源是现代社会发展和运行的基石,渗透于工业、商业、农业、家庭生活等方方面面,它为经济、生活质量、环境保护和社会发展提供了巨大的机会和潜力。图扑软件应用自研 HT for Web 强大的渲染引擎,助力现代化的电力能源数字孪生场景&#xf…

Oracle 12CR2 RAC部署翻车,bug避坑经历

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

C++初阶--自我实现vector

实现模板 #include<assert.h> #include<string.h> #include<iostream> #include<list> using namespace std; namespace fnc {template<class T>class vector{public:typedef T* iterator;typedef const T* const_iterator;//构造函数vector(){…

CSS 浮动 定位

文章目录 网页布局的本质浮动如何设置浮动测试浮动 定位相对定位绝对定位测试定位 网页布局的本质 用 CSS 来摆放盒子&#xff0c;把盒子摆放到相应位置。 CSS 提供了三种传统布局方式&#xff08;简单说就是盒子如何进行排列&#xff09;。 普通流&#xff08;标准流&#…

Postman接口测试基本操作(超详细)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 Postman-获取验证码 需求&#xff1a;使用Postman访问验证码接口&#xff0c;并查看响应结果…

Unity animator动画倒放的方法

在Unity中&#xff0c; 我们有时候不仅需要animator正放的效果&#xff0c;也需要倒放的效果。但我们在实际制作动画的时候可以只制作一个正放的动画&#xff0c;然后通过代码控制倒放。 实现方法其实很简单&#xff0c;只需要把animator动画的speed设置为-1即为倒放&#xff…

PGSQL安装PostGIS扩展模块

一、PostGIS简介 1、PostGIS介绍 PostGIS是一个空间数据库&#xff0c;空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。 空间数据与数据库关联起来的三个要素&#xff1a;数据类型、索引和函数。 空间数据类型&#xff1a;用于指定图形为点&#xff0…

揭秘无忧秘书AI看图说话功能:职场新宠,效率倍增器

在数字化时代&#xff0c;信息传递的方式越来越多样化。图片作为一种直观、简洁的信息载体&#xff0c;在日常工作和生活中扮演着越来越重要的角色。然而&#xff0c;如何快速、准确地解读图片中的信息&#xff0c;成为了许多职场人士面临的难题。这时&#xff0c;无忧秘书的AI…

园区参观路径 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 园区某部门举办了Family Day&#xff0c;邀请员工及其家属参加&#xff1b; 将公司园区视为一个矩形&#xff0c;起始园区设置在左上角&#xff0c;终点园区设置…

一篇文章带你了解 什么是u(ustd)带你了解他的前世今生

在数字货币的繁荣世界中&#xff0c;USDT无疑是其中一位重要的角色。它的前世今生&#xff0c;是一个从无到有&#xff0c;从小到大&#xff0c;经历了种种波折和争议的故事。 2014年11月下旬&#xff0c;一个名为Realcoin的注册地为马恩岛和香港的公司决定改变自己的名字&…

beego API 自动化文档

API 全局设置 必须设置在 routers/router.go 中&#xff0c;文件的注释&#xff0c;最顶部&#xff1a; // APIVersion 1.0.0 // Title mobile API // Description mobile has every tool to get any job done, so codename for the new mobile APIs. // Contact astaxiegmai…

AI基于近邻图的向量搜索(一)

案例介绍 最近邻问题 SPTAG解决的问题是如何从大规模的向量中快速找出近似最近邻点&#xff08;Approximate Nearest Neighbor&#xff09;&#xff0c;即实现最近邻搜索&#xff08;Nearest Neighbor Search&#xff09;。 我们可以将问题定义为&#xff1a; 其中&#xf…

【51单片机Keil+Proteus8.9+ADC0804】ADC实验 模拟转数字实验

一、实验名称 ADC实验 模拟转数字实验 二、设计思路 电路设计 1.选用AT89C51单片机作为电路核心单元&#xff0c;外接8位单通道AD转换器ADC0804芯片和LM016L显示器以及滑动变阻器等其它常用元器件构成电路。 2.将ADC0804芯片的控制引脚RD,WR,INTR接到AT89C51芯片对应引脚&…

双指针(JAVA语言)

目录 力扣283.移动零 力扣1089复写零&#xff08;难度较大&#xff0c;要重点理解&#xff0c;可以记不住咋写&#xff0c;但要记住想法&#xff09; 力扣202题快乐数 力扣11题.盛最多水的容器&#xff08;好写代码&#xff0c;方法不好想) 力扣283.移动零 public static voi…

第一部分 概述

目录 一、计算机网络在信息时代的作用 大众熟悉的三大类网络有 Internet 互连网与互联网的区别 可以从两种不同的方面来认识互联网&#xff1a; 互联网在生活中的地位 互联网 互联网负面影响 二、互联网的概述 网络的网络 基本概念 互连网基础结构发展的三个阶段 万维网www(…

未来 AI 可能给哪些产业带来哪些进步与帮助?

AI时代如何要让公司在创新领域领先吗&#xff1f;拥抱这5种创新技能&#xff0c;可以帮助你的公司应对不断变化。包括人工智能、云平台应用、数据分析、 网络安全和体验设计。这些技能可以帮助你提高业务效率、保护公司知识资产、明智决策、满足客户需求并提高销售额。 现在就加…

使用.NET API 中的 EventCounters进行指标监控

写在前面 为了实现轻量级、跨平台、准确实时的性能指标收集&#xff0c;从 .NET Core 3.0 版本开始引入 EventCounters API。除了 .NET 运行时提供的 EventCounters 外&#xff0c;还可以实现自定义的 EventCounters。 以便跟踪各种指标&#xff0c;EventCounters 作为 EventS…

比亚迪50亿重拳出击,建全球首个全地形赛车场,到底闹哪样?

比亚迪这是在悄无声息中准备的一击重拳吗&#xff1f;新建赛车场背后&#xff0c;到底藏着什么不为人知的战略目的&#xff1f;它是否再次玩转行业规则&#xff0c;一举带动整车文化的更深度发展&#xff1f;作为一直以来重视技术和长远规划的比亚迪来说&#xff0c;这里面肯定…

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体 文章目录 【C语言】- 设置控制台标题、编码、文字颜色、大小和字体1 - 设置控制台标题2 - 设置控制台编码3 - 设置控制台字体和大小参考链接 1 - 设置控制台标题 因为要用到 Windows API&#xff0c;所以需要包含头文件…

【谭浩强C程序设计精讲 chap4】选择结构程序设计

文章目录 第4章 选择结构程序设计一、用 if 语句实现选择结构二、用 switch 语句实现多分支选择结构三、条件运算符和条件表达式 第4章 选择结构程序设计 一、用 if 语句实现选择结构 一般形式&#xff1a; if (表达式)  语句1 [ else  语句2 ] 其他形式&#xff0c;常用的…