Docker-compose编排部署Kafka伪分布式集群(为后续实验搭建基础环境)

Docker部署Apache Doris:从单机到集群的完整实践指南 容器化技术通过将应用及其依赖打包成标准单元,实现了环境的一致性与快速部署,其核心原理在于利用操作系统级虚拟化实现资源隔离。这一技术为数据基础设施的搭建带来了革命性价值,尤其在数据仓库与分析平台领域,能够显著降低环境配置复杂度与部署时间。在实际应用场景中,开发者常将容器化与MPP分析型数据库结合,以构建可快速复制的实时数据分析环境。本文聚焦于如何利用Docker容器部署Apache Doris数据库,详细解析了从单机快速启动到使用Docker Compose编排生产级伪分布式集群的全过程,并重点阐述了数据持久 阅读详情

本实验参照官网http://kafka.apache.org/documentation/ 构建,为后续了解kafka应用做环境准备。

搭建环境:

  1. MAC10.15
  2. docker 19.03.4
  3. docker-compose version 1.24.1 
  4. jdk1.8以上(对于kafka2.x以上版本已遗弃对jdk1.7的支持)
  5. zookeeper-3.4.14(这里没使用kafka自带zk,而使用外置zk,这里zk依旧是部署在docker中,关于这块可通过其它板块了解)
  6. kafka2.x以上版本(我是通过下载tar包部署安装下载地址:http://kafka.apache.org/downloads选择指定版本)

如果对docker没什么大体概念,可百度,google一下,后续会提供对docker一些基本常规认知。

 

整体步骤:

1:先构建kafka镜像文件,这里我通过Dockerfile文件自身构建(也可采用docker官方标准镜像包),Dockerfile文件如下所示   

##使用jdk1.8

FROM java1.8/v1

MAINTAINE  xxx xxx@163.com

##当前kafka版本

ARG kafka_version="kafka_2.12-2.3.0"

##新建kafka用户

RUN groupadd -r kafka && useradd -r -g kafka kafka

##暴露9200端口

EXPOSE 9092

WORKDIR /usr/local/software/kafka

###将当前目录下kafka tar包copy到docker容器中
COPY $kafka_version.tgz /usr/local/software/kafka/$kafka_version.tgz

RUN mkdir data logs

RUN tar -vxf $kafka_version.tgz && rm -rf $kafka_version.tgz

##删除配置文件 将配置文件

RUN rm -rf $kafka_version/config/*

##将software目录赋予到es用户

RUN chown -R  kafka:kafka /usr/local/software

USER kafka

ENV PATH /usr/local/software/kafka/$kafka_version/bin:$PATH

##启动kafka

CMD ["kafka-server-start.sh","/usr/local/software/kafka/kafka_2.12-2.3.0/config/server.properties"]

 通过执行构建docker build命令,构建kafka image。

 在当前目录中执行docker build -t kafka/v1 . 

 通过docker images 验证是否存在名为kafka/v1 版本为latest的image

2:在同目录下构建 docker-compose.yml 文件

version: '3'
services:
  kafka_node1:
##构建镜像名 kafka/v1 latest版本号
    image: kafka/v1:latest
##启动容器名称
    container_name: kafka_node1
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
##容器内目录外挂到本地磁盘中
    volumes:
      - /Users/haizhi/Desktop/software/df/kafka/data/node1:/usr/local/software/kafka/data
      - /Users/haizhi/Desktop/software/df/kafka/config/node1:/usr/local/software/kafka/kafka_2.12-2.3.0/config
##容器端口映射到主机端口
    ports:
      - 127.0.0.1:9092:9092
##使用网络
    networks:
      - kafka
  kafka_node2:
    image: kafka/v1:latest
    container_name: kafka_node2
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /Users/haizhi/Desktop/software/df/kafka/data/node2:/usr/local/software/kafka/data
      - /Users/haizhi/Desktop/software/df/kafka/config/node2:/usr/local/software/kafka/kafka_2.12-2.3.0/config
    ports:
      - 127.0.0.1:9093:9092
    networks:
      - kafka
  kafka_node3:
    image: kafka/v1:latest
    container_name: kafka_node3
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /Users/haizhi/Desktop/software/df/kafka/data/node3:/usr/local/software/kafka/data
      - /Users/haizhi/Desktop/software/df/kafka/config/node3:/usr/local/software/kafka/kafka_2.12-2.3.0/config
    ports:
      - 127.0.0.1:9094:9092
    networks:
      - kafka
networks:
  kafka:
##自动构建名为kafka_kafka网络
    external: false

虽是伪分布式环境,但是通过docker容器化部署,可以最大程度模拟为分布式部署。

为了将kafka各节点配置文件及数据外置化,如docker-compose.yml中描述,我在指定目录中构建data,config目录,总体目录结构如下  

--kafka
    --data
      --node1
      --node2
      --node3
    --config
      --node1
       --对应各config文件
      --node2
       --对应各config文件
      --node3
       --对应各config文件

  3:解压kafka安装包将config下各配置文件copy到依照上述目录结构中各config下node中,如下图所示:

  

     4:修改各node节点中server.properties

##设置当前broker唯一id 不同node broker不同
broker.id=0
##设置侦听器列表uri和端口号,多个以逗号隔开
listeners=127.0.0.1://:9092
##kafka broker用于接收消费者生产者的请求并返回数据的线程数 默认为3 可根据生产环境进行调配
num.network.threads=3
##服务器用于接受io请求线程数据 包含写入磁盘io请求
num.io.threads=8
##socket发送最大内容数
socket.send.buffer.bytes=102400
##socket接收最大内容数
socket.receive.buffer.bytes=102400
##设置ISR 最小同步副本数 必须保证ISR列表中节点存活数大于此值否则集群不可用
min.insync.replicas=1
##消息落地磁盘目录
log.dirs=/usr/local/software/kafka/data
##默认分区数 topic构建不指定分区数据的化默认为1
num.partitions=1
##
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
##消息数据从内存缓存中刷新到磁盘数量的阀值 可依照生产环境或实际应用需求调整
log.flush.interval.messages=100
##消息数据从内存缓存中刷新到磁盘时间的阀值 默认为1s 可依照生产环境或实际应用需求调整
##如果设置过大,可能存在丢失数据 如果设置过小 导致性能问题
log.flush.interval.ms=1000
##默认数据存在7天 也可指定消息磁盘大小(可不配置)
log.retention.hours=168
log.retention.bytes=-1
##每个topic中每个partition中segment自动切割大小
##超过此值文件自动切割
log.segment.bytes=1073741824
##设置zk连接 多个host以逗号隔开
## host.docker.internal 是mac系统 docker容器访问主机要通过host.docker.internal方式
##非mac系统不需要
zookeeper.connect=host.docker.internal:2181
##kafka连接zk超时时间
zookeeper.connection.timeout.ms=6000

group.initial.rebalance.delay.ms=0





    5:目前目录完整结构

  在当前目录执行 docker-compose up -d  设置为后台启动

  使用docker ps 查看启动完成

完整资料在github中

从零搭建Hadoop+Spark大数据平台:本地部署、核心验证与实战指南 大数据处理的核心在于对海量、多源、高速增长的数据进行高效存储、计算与分析,其技术原理通常基于分布式系统架构,通过将任务分解并行处理来突破单机性能瓶颈。这一技术价值体现在能够为数据密集型应用提供可扩展、高容错的解决方案,广泛应用于互联网、金融、物联网等领域的用户行为分析、实时风控和智能推荐等场景。本文聚焦于大数据技术栈的本地化部署与实践,详细阐述了以Hadoop分布式文件系统(HDFS)和YARN资源调度为核心,集成Spark计算引擎的伪分布式环境搭建过程。内容涵盖从Java环境配置、SSH免密登录到HDFS 阅读详情

相关推荐

开源数据中台实战:从架构选型到MVP搭建全解析

数据中台作为企业数据资产管理与服务的核心体系,其核心原理在于通过统一的数据资产层,整合多源异构数据,打破数据孤岛。在技术实现上,它融合了数据采集、存储计算、治理与服务等关键技术,旨在为业务提供标准化、可复用的数据能力。其技术价值体现在提升数据利用效率、降低数据应用开发成本,并支持敏捷的业务创新。在应用场景上,无论是实时风控、用户画像分析还是业务报表,都离不开一个稳定高效的数据处理平台。本文聚焦于如何利用成熟的开源组件,如Apache Flink进行实时计算、Apache Doris进行高性能OLAP分析,构

aofan9566的博客 527

docker-compose 部署kafka伪集群

docker-compose 部署zookeeper伪集群,kafka伪集群,对应镜像自行去docker hup拉取,这里步骤省略 创建kafka-compose.yml version: '3.1' services: zoo1: # 镜像名称 image: zookeeper:3.7.0 # 重启docker 自动重启容器 restart: always hostname: zoo1 container_name: zookeeper_1 #

泉眼和溪流的关系,大概是泉眼会被溪流一点一滴的占据 463

大数据技术学习资源与实战指南

大数据技术作为现代数据处理的核心,涵盖了从分布式存储到实时计算的完整技术栈。其核心原理包括分布式计算框架(如Hadoop、Spark)和流处理系统(如Flink),通过并行处理实现海量数据的高效分析。这些技术在电商推荐、金融风控等场景中展现出巨大价值,帮助企业在数据驱动的决策中获得竞争优势。本文聚焦大数据学习资源,系统梳理了基础设施层、数据处理层到数据应用层的技术体系,并提供实战环境搭建指南,帮助开发者快速掌握Spark、Flink等核心工具。通过结合官方文档、开源项目和云服务实践,读者可以构建完整的大数据

weixin_30432579的博客 335

docker安装kafka

是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。:订阅消息并处理发布的消息的对象称之为主题消费者(将消息分门别类,每一类的消息称之为一个主题(:已发布的消息保存在一组服务器中,称之为。集群中的每一个服务器都是一个代理(消费者可以订阅一个或多个主题(:发布消息的对象称之为主题生产者(拉数据,从而消费这些已发布的消息;相关的节点数据,所以安装。

JiMoXiaoHunRen的博客 1329

Docker安装Kafka简单步骤

本文将介绍在Docker中安装Kafka的简单步骤,包括创建Docker容器、配置Kafka环境以及启动Kafka服务。本文将介绍在Docker中安装Kafka的简单步骤,包括创建Docker容器、配置Kafka环境以及启动Kafka服务。这是一个简单的示例,演示了如何使用Kafka的Python客户端库进行消息的生产和消费。这是一个简单的示例,演示了如何使用Kafka的Python客户端库进行消息的生产和消费。下面是一个简单的Python示例,演示如何使用Kafka进行消息的生产和消费。

CvhShell的博客 343

HPM6E00:PWM V2使用指南

HPM6E00:PWM V2使用指南

xikangsoon的博客 1733

docker-compose 配置kafka_使用Docker Compose容器编排工具

Docker Compose 容器编排工具,也可以认为是一个构建工具,可以配置并启动多个容器,适合复杂业务场景。安装:一切按照官方文档来:https://docs.docker.com/compo...sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)...

weixin_39631899的博客 351

ANSYS WB 网格划分详解与技巧

本文详细介绍了网格操作中的关键设置与功能选项。主要内容包括:1)网格显示风格与物理偏好设置;2)单元阶次选择对精度的影响;3)单元尺寸控制方法;4)尺寸调整功能,重点讲解了自适应尺寸调整、增长率控制和捕获曲率等选项;5)网格质量评估标准;6)四种主要划分方法(四面体、六面体主导、扫掠、多区域)的特点与适用场景;7)三种尺寸调整方式(直接调整、边缘尺寸调整、影响范围调整)的具体应用。文章强调在实际建模中需要根据模型特点合理选择网格参数,平衡计算精度与效率。

2403_87939837的博客 1697

【中间件】通过 docker-compose 快速部署 Kafka 保姆级教程

Kafka是由Apache基金会开发的分布式流处理平台,采用发布-订阅模式,支持高吞吐量、低延迟的数据传输。主要用于处理实时数据管道、数据存储和数据分析等大数据应用场景。Kafka采用高效的数据压缩算法,可以在集群中存储大量的数据,并通过分区机制来实现数据的高可靠性和可扩展性。数据管道:在数据采集和分发过程中构建可扩展的流式数据管道,用于实时数据处理和分析。例如,数据收集、日志聚合、网络追踪、用户活动跟踪等。数据存储。

匠人精神,持之以恒! 2854

CXL Virtual Hierarchy (VH) Enumeration理解

在 CXL 3.0 协议中,CXL Virtual Hierarchy (VH) Enumeration 是一种针对 CXL 虚拟层级(Virtual Hierarchy) 设计的设备枚举机制,它允许软件将物理连接的 CXL 设备抽象为多个逻辑层级(虚拟层级),从而实现更灵活的资源管理和拓扑扩展。与传统的 PCIe 枚举相比,CXL VH 枚举在协议特性、拓扑抽象和资源分配机制上有显著差异。本质:VH 是一个逻辑上的设备层级结构,可能与物理连接拓扑不同。

Summer的博客 1001

四大厂商网络设备巡检命令实战指南:华为、华三、锐捷、思科

本文详细介绍了华为、华三、锐捷、思科四大厂商网络设备的巡检命令实战指南,涵盖硬件状态、软件运行和网络功能等核心维度。通过具体命令示例和实用技巧,帮助网络工程师高效完成设备巡检,预防潜在故障,确保网络稳定运行。

weixin_29235923的博客 391

单机部署Hadoop+Spark+Flink:本地大数据环境搭建与核心功能验证

大数据处理的核心在于对海量、多样、高速数据进行高效分析与价值挖掘,其技术基石通常包括分布式存储与计算框架。通过容器化技术,我们可以在单机环境下模拟完整的分布式处理流程,这为学习、开发和原型验证提供了极大便利。本文聚焦于利用Docker Compose一键部署集成Hadoop、Spark和Flink的轻量化环境,详细阐述了从环境准备、服务启动到核心功能测试的完整路径。实践环节覆盖了HDFS文件操作、Spark批处理任务提交以及Flink流处理管道的验证,并探讨了通过REST API进行任务管理的方法。这种本地

weixin_33912246的博客 373

SpringBoot与Hadoop构建健康大数据分析平台

大数据处理技术通过分布式计算框架如Hadoop实现海量数据的高效处理,其核心原理包括MapReduce并行计算和HDFS分布式存储。在医疗健康领域,结合SpringBoot的轻量级微服务架构,可以快速构建智能分析平台,实现从数据采集到决策服务的完整链路。典型应用如健康风险评估,通过分析体征数据趋势识别潜在疾病风险。该技术组合既满足教学演示需求,也适用于实际工程场景,其中HBase存储引擎和YARN资源调度的选择体现了对数据一致性和系统稳定性的考量。

anjueci1221的博客 402

从ResNet到EfficientNet:特征金字塔网络(FPN)在不同骨干网中的适配指南

本文深入探讨了特征金字塔网络(FPN)与ResNet、VGG、EfficientNet等主流骨干网络的适配策略。文章详细解析了FPN的核心原理,并针对不同骨干网络的特征提取特性,提供了通道对齐、参数量估算及迁移学习的系统化指南,旨在帮助开发者在目标检测等视觉任务中构建高性能、高效率的模型。

weixin_29047919的博客 220

Java小白入门200例81之Java接口

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 1358

docker compose 安装 kafka

创建 /data/kafkadata /data/zookeeper-1用于保存kafka和zookeeper的配置文件kafkadata中创建三个文件夹 /kafka1 /kafka2 /kafka3,用于存放三个kafka节点的配置文件zookeeper-1文件夹中创建 /conf /data /logs /datalog四个文件夹,用于存放zk的信息kafka1 kafka2 kafka3中创建server.properties其中broker.id需要修改为对应编号 1,2,3。

hey_lie的博客 3837

OpenClaw 与十几款国产 “龙虾” 智能体深度对比

详解介绍OpenClaw和各种类似国产“龙虾”智能体工具深度对比

program哲学 2344

基于Docker-compose构建Kafka集群

首先,先向大家道个歉。由于前段时间的工作调整,导致我一直没有进行更新。现在工作逐渐走上正轨,现在决定继续更新自己学习的内容。希望对于学习或者从事大数据开发的你提供一些帮助。本次更新的内容为如何使用Docker-compose技术进行Kafka集群的构建。...

m0_43405302的博客 2083

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

快速安装docker-compose,通过docker-compose一键搭建kafka集群~

1.docker-compose官网安装方式 1.1下载Docker Compose的当前稳定版本 官方的地址太慢了~可以使用下面替代版 curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docke...

右手边的流年 1784

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

docker-compose 部署kafka

第一步:安装docker-compose 1.从github上下载docker-compose二进制文件安装 下载最新版的docker-compose文件 $ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr...

Crystalqy的博客 5814

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

《2019/04/26》Docker构建kafka伪分布式集群及java代码测试

《2019/04/26》Docker构建kafka伪分布式集群及java代码测试 博客以实用为主。 一、安装docker 参看我的这篇博客:Ubuntu18.10上Docker的安装及简单使用 。 二、安装docker-compose 1、下载docker-compose 安装教程地址: https://docs.docker.com/compose/install/ 。 by date 20...

guoxiaozhong的博客 361

运维利器Docker部署 Kafka 2.12-2.2.1伪集群

运维利器Docker部署 Kafka 2.12-2.2.1伪集群前言环境概述部署Zookeeper集群关闭防火墙启动Docker创建Docker网络查看Docker网络vim编写docker-compose.yml启动 Kafka 集群查看日志使用客户端连接Docker 容器内的服务连接 前言 1、本篇文章省略 docker 和 docker-compose 安装配置过程,如果大家还对 dock...

Java 1174

docker下单机版kafka的搭建 镜像仓库

环境 centos7    jdk1.8    zookeeper3.4.10   kafka2.11 操作前打开2181和9092端口 1.安装zookeeper wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz tar -zxvf zookeeper-3...

周大侠的博客 1724
下一篇: zookeeper在docker中部署(单节点模式)
F_Hello_World
博客等级 码龄11年 38粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值