【Kafka】Linux本地和Docker安装Kafka

目录

  • 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.mzph.cn/news/636906.shtml

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

相关文章

深度学习(4)--Keras实战

一.Keras基础概念 1.1.Keras是什么 Keras是深度学习中的一个神经网络框架,是一个高级神经网络API,用Python编写,可以在TensorFlow,CNTK或Theano之上运行。 Keras优点: (1). 允许简单快速的原型设计(用户…

【C++】用wxWidgets实现多文档窗体程序

一、基本步骤和示例代码 在wxWidgets中,要实现多文档窗体程序,通常会使用wxMDIParentFrame和wxMDIChildFrame类来创建一种标准的MDI(多文档接口)应用。以下是基本步骤和示例代码,演示如何使用wxWidgets创建多文档界面…

Pycharm详细安装 配置教程

继上次安装完Anaconda之后,现在更新最新版本的pycharm的安装和使用教程~~~ Anaconda:是一个开源的Python发行版本,其中包含了conda、Python等180多个科学包及其依赖项。【Anaconda和Pycharm详细安装 配置教程_anconda安装时clear the packag…

SpringMVC简介和SpringMVC的HelloWorld

一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean&#xff1a…

web渗透安全学习笔记:2、HTML基础知识

目录 前言 HTML的标题 段落链接与插入图片 HTML元素 HTML属性 HTML头部 HTML与CSS HTML与JavaScript 表格与列表 HTML区块 布局 HTML表单 HTML与数据库 音频与视频 HTML事件 前言 HTML的标题 <!DOCTYPE html> <html> <head> <meta chars…

yum配置文件及NFS共享

一 yum配置文件及命令 1 /etc/yum.conf //主配置文件 2 /etc/yum.repos.d/*.repo //yum仓库文件位置 写错一个字母就不行&#xff0c;可以ping www.google.com 测试网络 3 /var/log/yum.log //日志文件 二 yum命令 1 [rootlocalhost ~…

分布式锁的产生以及使用

日常开发中&#xff0c;针对一些需要锁定资源的操作&#xff0c;例如商城的订单超卖问题、订单重复提交问题等。 都是为了解决在资源有限的情况限制客户端的访问&#xff0c;对应的是限流。 单节点锁问题 目前针对这种锁资源的情况采取的往往是互斥锁&#xff0c;例如 java 里…

【LeetCode: 295. 数据流的中位数 + 堆】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

list列表可编辑状态

有时候list需要修改或选择属性,mfc自带的只能显示内容,基本上是不可以修改,为了实现这个功能需求,需要完成一下步骤转换. 第一步记录选择的单元格. 第二步创建一个编辑框CComboBox对象, 设置字体,窗口属性. 第三步获取选中单元格的位置信息. 第四步获取单元格内容信息. 第五步…

Leetcode3005. 最大频率元素计数

Every day a Leetcode 题目来源&#xff1a;3005. 最大频率元素计数 解法1&#xff1a;遍历 哈希 遍历数组 nums&#xff0c;统计各元素 num 的出现次数&#xff0c;存储在哈希表 cnt 中。 初始化 sum 0&#xff0c;max_freq 0。 遍历哈希表 cnt&#xff1a; 如果当前…

v34.运算符的优先级 和 结合性

1.优先级 优先级高的运算符会首先被评估。 2.结合性 当运算符的优先级相同时&#xff0c;结合性就会发挥作用。 3.优先级很重要 &#xff08;&#xff09;的优先级大于&#xff0c;所以操作数fun属于&#xff08;&#xff09; 而不是 &#xff0c;所以这个表达式看做是将函数…

基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现)

采用蒙特卡洛模拟法&#xff0c;对家用电动汽车充电负荷进行预测&#xff0c;电动汽车分为快、中、慢三种充电功率&#xff0c;且分为一天一充、一天两充、一天三充三种类型。全部MATLAB代码在下方给出&#xff0c;可以直接运行。 %%%%%%%%%%%%%%%%%%%%%%%%输入电动汽车相关原…

Spark读取kafka(流式和批数据)

spark读取kafka&#xff08;批数据处理&#xff09; # 按照偏移量读取kafka数据 from pyspark.sql import SparkSessionss SparkSession.builder.getOrCreate()# spark读取kafka options {# 写kafka配置信息# 指定kafka的连接的broker服务节点信息kafka.bootstrap.servers: n…

集美大学“第15届蓝桥杯大赛(软件类)“校内选拔赛 D矩阵选数

经典的状态压缩DP int dp[15][(1<<14)10]; int a[15][15]; void solve() {//dp[i][st]考虑到了第i行 并且当前考虑完第i行以后的选择状态是st的所有方案中的最大值for(int i1;i<13;i)for(int j1;j<13;j)cin>>a[i][j];for(int i1;i<13;i){for(int j0;j<…

宝塔 ftp 服务器发回了不可路由的地址/读取目录列表失败

ftp连接不上&#xff1a; 1.注意内网IP和外网IP 2.检查ftp服务是否启动 &#xff08;面板首页即可看到&#xff09; 3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 &#xff08;如是腾讯云/阿里云等还需检查安全组&#xff09; 4.是否主动/被动模式都不能连接…

相比于 Jira,极狐GitLab 的敏捷项目管理是怎样的?

本文作者 极狐GitLab 资深解决方案架构师 尹学峰 简述 写在前面的话 如果你目前没有用任何专门的项目管理软件&#xff0c;只是在使用word、excel之类的通用软件进行项目管理&#xff0c;建议直接阅读本文详述章节&#xff0c;极狐GitLab的项目管理工具将为你带来巨大的效率提…

logstack 日志技术栈-04-opensource 开源工具 Syslog-ng+Highlight.io

5. Syslog-ng Syslog-ng 是一个开源的日志管理解决方案&#xff0c;主要用于收集和处理日志数据。它可以从多种源收集日志&#xff0c;包括系统日志、网络设备日志和第三方应用日志。 然后将日志解析、分类、重写和关联到统一格式中&#xff0c;然后将其存储或安全地传输到不同…

[ tool ] Xpath选择器和selenium工具基本使用

XPath xpath介绍 是一门在XML文档中查找信息的语言 html文档准备 doc <html><head><base hrefhttp://example.com/ /><title>Example website</title></head><body><div idimages><a hrefimage1.html aabb>Name: My…

JVM工作原理与实战(二十一):内存管理

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、不同语言的内存管理 1.C/C的内存管理 2.Java的内存管理 二、垃圾回收的对比 1.自动垃圾回收与手动垃圾回收的对比 2.优点与缺点 总结 前言 JVM作为Java程序的运行环境&#…

区字棋中的最长非0链

一&#xff0c;区字棋 也叫憋死牛棋。 规则&#xff1a; 棋盘一共只有5个点&#xff0c;双方各2个棋子&#xff0c;还有一个空格。 先手必须移动左边的棋子&#xff0c;之后没有限制&#xff0c;2个棋子任意一个移动到空格皆可。 无法移动者判负。 二&#xff0c;不败策略…