当前位置: 首页 > news >正文

Docker部署常见应用之大数据实时计算引擎Flink

文章目录

    • Flink 简介
    • Docker 部署
    • Docker Compose 部署
    • 参考文章

在这里插入图片描述

Flink 简介

Apache Flink 是一个开源的分布式流批一体化的计算框架,它提供了一个流计算引擎,能够处理有界和无界的数据流。Flink 的核心优势在于其高吞吐量、低延迟的处理能力,以及强大的状态管理和容错机制。它支持事件驱动的应用和复杂的事件处理(CEP),并且可以处理批处理任务。Flink 的设计目标是提供一个易于使用、灵活且高性能的数据处理平台。

Flink 的一些关键特性包括:

  • 高吞吐量和低延迟:能够处理大规模的数据流,同时保持毫秒级的处理延迟。
  • 状态管理和容错:提供了强大的状态管理功能,允许在发生故障时从检查点或保存点恢复作业。
  • 事件时间处理:支持基于事件时间的数据处理,可以处理乱序事件和长时间运行的计算。
  • CEP(复杂事件处理):可以识别和处理复杂的事件模式,这对于监控和警报等应用非常有用。
  • 批流一体:统一了批处理和流处理,使得开发人员可以使用相同的 API 来编写批处理和流处理作业。
  • 可伸缩性:可以在小型集群到大型集群中运行,支持水平伸缩以适应不同的负载需求。
  • 生态系统:拥有丰富的连接器和库,可以与各种数据源和数据存储系统集成。
  • 多语言支持:提供了 Java 和 Scala API,并且通过 DataStream API 支持 Python 和其他语言的集成。

在 Docker 中部署 Flink 是一种流行的实践,因为它简化了环境的配置和管理工作。以下是使用 Docker 部署 Flink 的基本步骤:

Docker 部署

  1. 安装 Docker:确保你的系统上已经安装了 Docker,可以从 Docker 官网下载并安装。

  2. 创建 Docker 网络:为了使 Flink 组件能够相互通信,需要创建一个 Docker 网络。

    docker network create flink-network
    
  3. 拉取 Flink 镜像:从 Docker Hub 拉取官方的 Flink 镜像。

    docker pull flink:1.15.0-scala_2.12-java8
    
  4. 启动 Flink 组件:使用 Docker 命令启动 Flink 的 JobManager 和 TaskManager 组件,并加入到创建的网络中。

    docker run -d -p 8081:8081 --name flink-jobmanager --network flink-network --env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" flink:1.15.0-scala_2.12-java8 jobmanager
    docker run -d --name flink-taskmanager --network flink-network --env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" flink:1.15.0-scala_2.12-java8 taskmanager
    
  5. 访问 Flink Web UI:通过浏览器访问 http://<host>:8081 来查看 Flink 的 Web UI 界面,其中 <host> 是运行 JobManager 的 Docker 主机的地址。
    在这里插入图片描述

  6. 提交 Flink 作业:可以通过 Flink 的命令行工具或者 Web UI 提交作业到集群运行。

  7. 管理 Flink 集群:可以通过 Docker 的命令来管理 Flink 容器的生命周期,如停止、删除等。

Docker Compose 部署

  1. Docker Compose文件定义:
    为了方便管理, 将上述的 docker run 命令转换为 docker-compose.yml 文件, 同时增加 sql-client服务。

    version: '3'  # 你可以根据需要选择合适的版本services:jobmanager:image: flink:1.15.0-scala_2.12-java8container_name: flink-jobmanagerports:- "8081:8081"environment:- |FLINK_PROPERTIES=jobmanager.rpc.address: jobmanagercommand: jobmanagernetworks:- flink-networktaskmanager:image: flink:1.15.0-scala_2.12-java8container_name: flink-taskmanagerenvironment:- |FLINK_PROPERTIES=jobmanager.rpc.address: jobmanagertaskmanager.numberOfTaskSlots: 2command: taskmanagerdepends_on:- jobmanagernetworks:- flink-networksql-client:image: flink:1.15.0-scala_2.12-java8container_name: flink-sql-clientenvironment:- |FLINK_PROPERTIES=jobmanager.rpc.address: jobmanagercommand: bin/sql-client.shdepends_on:- jobmanagernetworks:- flink-networknetworks:flink-network:driver: bridge
    

    这个 docker-compose.yml 文件定义了三个服务:jobmanagertaskmanagersql-client。每个服务都使用 flink:1.15.0-scala_2.12-java8 镜像,并设置了相应的环境变量和命令来启动 Flink 的相应组件。

    请注意以下几点:

    • container_name 指定了容器的名称。
    • ports 映射了容器端口到宿主机端口。
    • environment 设置了容器的环境变量。
    • command 指定了容器启动时执行的命令。
    • depends_on 确保了 taskmanagerjobmanager 之后启动。
    • networks 定义了一个名为 flink-network 的网络,所有服务都在这个网络上。

    在使用 docker-compose.yml 文件之前,请确保你已经安装了 Docker 和 Docker Compose,并且已经创建了 flink-network 网络(如果尚未创建,Docker Compose 将自动创建它)。

  2. 启动Flink集群

    要启动 Flink 集群,你需要在包含 docker-compose.yml 文件的目录中运行以下命令:

    docker-compose up -d
    

    -d 参数表示在后台运行服务。

  3. 运行Flink-SQL客户端:

    docker-compose run sql-client
    

    进入flink sql客户端, 可以创建表并进行相关查询。

  4. 停止Flink集群

    要停止服务并移除容器,你可以使用:

    docker-compose down
    

参考文章

Apache Flink Documentation | Apache Flink
Flink SQL Client with Session Cluste
Docker | Apache Flink
聊聊Flink:Docker搭建Flink

相关文章:

Docker部署常见应用之大数据实时计算引擎Flink

文章目录 Flink 简介Docker 部署Docker Compose 部署参考文章 Flink 简介 Apache Flink 是一个开源的分布式流批一体化的计算框架&#xff0c;它提供了一个流计算引擎&#xff0c;能够处理有界和无界的数据流。Flink 的核心优势在于其高吞吐量、低延迟的处理能力&#xff0c;以…...

python使用os.getcwd()获取当前路径不正确

# codinggbk import ostry:current_dir os.getcwd()#print(os.path.dirname(os.path.realpath(__file__)))#获取错误print("当前工作目录[不想要]&#xff1a;",current_dir)#获取真实文件夹路径print("当前工作目录[想要]&#xff1a;",os.path.dirname(…...

pycharm终端pip安装模块成功但还是显示找不到 ModuleNotFoundError: No module named

报错信息&#xff1a; ModuleNotFoundError: No module named 但是分明已经安装过此模块&#xff1a; 在cmd运行pip list 查看所有安装过的包找到了安装过&#xff1a; 如果重新安装就是这样&#xff1a;显示已经存在了 问题排查&#xff1a; 直接根据重新安装的显示已存在的…...

iptables教程

1 iptables安装 1.1 iptables和iptables-service的关系 iptables 是基于内核的&#xff0c;和 iptables-services 没有关系&#xff0c;不用安装任何工具包就可以使用 iptable 命令添加的防火墙规则&#xff0c; 但是iptables添加的规则是临时的&#xff0c;基于内存的&…...

破局外贸企业海外通邮难题,U-Mail邮件中继有绝招

在当今全球化的商业环境中&#xff0c;国内企业正扮演着越来越重要的角色&#xff0c;它们不仅在国内市场活跃&#xff0c;而且在全球范围内拓展业务&#xff0c;成为国际贸易中不可或缺的一部分。然而&#xff0c;尽管这些企业在业务扩展上取得了显著成就&#xff0c;但在与海…...

支持向量机(SVM): 从理论到实践的指南(2)

葡萄酒数据集经常被用于机器学习、模式识别和统计分类算法的测试中。由于其特征维度较高&#xff0c;非常适合于验证特征选择和降维方法&#xff0c;例如主成分分析&#xff08;PCA&#xff09;或线性判别分析&#xff08;LDA&#xff09;的效果。同时&#xff0c;由于数据集包…...

PDF格式分析(八十六)——修订注释(Redaction)

修订注释(PDF 1.7及其以上版本),该注释的做用是标识要从文档中删除的内容。 修订注释启用的步骤如下: 1、内容标识。PDF编辑器可指定应删除的文档内容片段或区域,在执行下一个步骤前,用户可以看到、移动和重新定义这些注释。 2、内容移除。PDF阅读器应删除修订注释指…...

【python】flask中Session忽然取不到存储内容怎么办?

尚未确定,后续更新,先别以此为准。 【背景】 用flask写的Web应用,运行不正常,查看原因,发现视图函数a中设定的session内容在视图函数b忽然拿不到了。 【分析】 这个应用在两个服务器间互相Hook,因此可能涉及跨域的问题。 视图函数a设置的session,再次从前端调用视图…...

05-腾讯云Copilot及 向量数据库AI套件介绍

1 Andon Copilot核心功能介绍 2 Andon Copilot覆盖腾讯云售后、售前场景 3 腾讯云向量数据库– AI套件效果 AI 套件是腾讯云向量数据库&#xff08;Tencent Cloud VectorDB&#xff09;提供的一站式文档检索解决方案&#xff0c;包含自动化文档解析、信息补充、向量化、内容检…...

软件版本库管理工具

0 Preface/Foreword 常用代码版本管理工具包括如下几种&#xff1a; Git&#xff0c;最基本管理工具&#xff0c;由Linux kernel开发者开发Repo&#xff0c;主要用于管理Android SDK&#xff0c;由Google开发Gerrit&#xff0c;代码审查软件 1 Git 最基本的代码版本库管理工…...

LVS负载均衡集群企业级应用实战-LVS/NAT模式(三)

目录 LVS/NAT模式 一. 环境准备 二. 对虚拟服务器操作 三. 对真实服务器操作 四. 打开网站验证 LVS/NAT模式 一. 环境准备 统一关闭防火墙和selinux&#xff0c;时间同步&#xff0c;配置好YUM源系统发行版选择会用就可以&#xff0c;这里也是两种一起使用学习。用的不同系…...

在Spring中如何手动开启事务(使用编程式事务)

这里写自定义目录标题 一、使用 transactionManager1、向容器中注入事务管理器2、使用 transactionManager 提交事务3、测试 二、使用TransactionTemplate1、向容器中注入 TransactionTemplate2、开启事务 一、使用 transactionManager 1、向容器中注入事务管理器 Configurat…...

cv的优势

计算机视觉&#xff08;CV&#xff09;技术是一种通过计算机对图像、视频等视觉数据进行分析和理解的技术。它在多个领域有着广泛的应用&#xff0c;包括图像识别、目标检测、人脸识别、无人驾驶等。下面是一些计算机视觉技术的优势和挑战的例子&#xff1a; 优势&#xff1a;…...

基于某评论的TF-IDF下的LDA主题模型分析

完整代码&#xff1a; import numpy as np import re import pandas as pd import jieba from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.decomposition import LatentDirichletAllocationdf1 pd.read_csv(小红书评论.csv) # 读取同目录下csv文件…...

四、Nginx配置文件-负载均衡

目录 一、负载均衡的作用 二、负载均衡状态 三、负载均衡的指令 1、upstream 指令 2、server指令 四、负载均衡几种方式 1、轮询&#xff08;Round Robin 常用&#xff09; 2、IP Hash &#xff08;较少&#xff09; 3、最少连接数&#xff08;Least Connections 较少&…...

ofd文件预览

文件列表 <template><div><div classfile v-if$myUtils.coll.isNotEmpty(filesList)><div classfile-view><div classfile-view-item :style{justifyContent: align } v-for(item, index) in filesList :keyindex><img classfile-view-item-…...

浅浅了解下Spring中生命周期函数(Spring6全攻略)

你好&#xff0c;这里是codetrend专栏“Spring6全攻略”。 Spring框架设计生命周期回调函数的主要目的是为了提供一种机制&#xff0c;使开发人员能够在对象创建、初始化和销毁等生命周期阶段执行特定的操作。这种机制可以帮助开发人员编写更加灵活和可维护的代码。 举个例子…...

建议收藏!亚马逊卖家必须知道的37个常用术语解释

运营亚马逊&#xff0c;经常会看到很多个专业术语&#xff0c;想必大部分新手卖家都比较陌生&#xff0c;熟悉这些常用术语的含义有助于你更好地运营亚马逊。下面为各位整理了37个在亚马逊跨境电商中常见的术语及其解释&#xff0c;建议收藏&#xff01; 1、SKU Stock Keeping…...

黑苹果睡眠总是自动唤醒(RTC)

黑苹果睡眠总是自动唤醒【RTC】 1. 问题2. 解决方案2.1. 查看重启日志2.2. 配置Disable RTC wake scheduling补丁 3. 后续4. 参考 1. 问题 黑苹果EFI 更换后&#xff0c;总是在手动 睡眠后&#xff0c;间歇性重启&#xff0c;然后再次睡眠&#xff0c;然后再重启。原因归结为&…...

【代码随想录训练营】【Day 49+】【动态规划-8】| Leetcode 121, 122, 123

【代码随想录训练营】【Day 49】【动态规划-8】| Leetcode 121, 122, 123 需强化知识点 买卖股票系列 题目 121. 买卖股票的最佳时机 动态规划贪心&#xff1a;记录左侧的最小值 class Solution:def maxProfit(self, prices: List[int]) -> int:# n len(prices)# # 0…...

iOS设备支持文件管理指南:让Xcode兼容新旧iOS系统的实用方案

iOS设备支持文件管理指南&#xff1a;让Xcode兼容新旧iOS系统的实用方案 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport 开发困境突破&#xff1a;iOS版本与Xcode的兼容性挑战 …...

MAA游戏助手:如何让《明日方舟》的日常任务自动完成?

MAA游戏助手&#xff1a;如何让《明日方舟》的日常任务自动完成&#xff1f; 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: h…...

离线语音智能处理平台Buzz:本地化音频转文本全攻略

离线语音智能处理平台Buzz&#xff1a;本地化音频转文本全攻略 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 在当今信息驱动…...

NXP S32K3开发日记:PIT0的RTI唤醒功能调试全记录(含时钟源配置误区)

NXP S32K3开发实战&#xff1a;PIT0 RTI唤醒功能深度解析与排错指南 作为一名长期深耕汽车电子领域的嵌入式工程师&#xff0c;最近在基于NXP S32K3系列MCU开发低功耗应用时&#xff0c;遇到了一个颇具挑战性的问题——如何可靠地使用PIT0的RTI&#xff08;Real Time Interrupt…...

当条形图遇上极坐标:径向与圆形条形图的视觉革命

1. 设计原理这两种图表把传统的笛卡尔坐标系换成极坐标系&#xff1a;角度表示类别&#xff0c;半径或角度长度表示数值。1.1. 径向条形图径向条形图本质上是将传统条形图的直角坐标系转换为极坐标系。在极坐标系中&#xff0c;每个数据点不再由(x, y)定位&#xff0c;而是由(角…...

CAD图纸转PDF的4种方法,简单易懂,新手也能轻松学会!

在实际工作中&#xff0c;CAD图纸格式&#xff08;如DWG、DXF&#xff09;仅能通过AutoCAD等专业软件打开&#xff0c;而PDF格式作为通用文档&#xff0c;支持跨设备、跨平台查看&#xff0c;无需安装CAD软件。这种转换的必要性体现在&#xff1a;1. 文件分享安全&#xff1a;P…...

突破音乐加密限制:Unlock Music实现跨平台音频自由解决方案

突破音乐加密限制&#xff1a;Unlock Music实现跨平台音频自由解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: …...

别再用FIFO了!AXI4-Stream CDC场景下,寄存器管道(Register Slice)模式实战与避坑

别再用FIFO了&#xff01;AXI4-Stream CDC场景下寄存器管道模式的实战精要 在FPGA和SoC设计中&#xff0c;跨时钟域&#xff08;CDC&#xff09;数据传输一直是个让人头疼的问题。每当遇到不同时钟域间的数据同步&#xff0c;大多数工程师的第一反应就是掏出一个FIFO来解决。这…...

8款AI论文写作工具(含爱毕业aibiye)推荐及新手快速上手方法

人工智能技术在学术研究领域的深度整合为论文撰写流程带来了革命性变革&#xff0c;通过8款核心智能工具的协同应用——包括文献智能分析系统、自动化内容生成引擎以及文本精准优化平台——研究者能够实现从数据挖掘到学术表达的全程智能化&#xff0c;显著提升文献处理效率与学…...

别再死记硬背MIPI状态转换图了!用Python脚本模拟单向/双向Data Lane状态机

用Python脚本动态解析MIPI状态机&#xff1a;从理论到实践的可视化之旅 每次打开MIPI协议文档看到那些密密麻麻的状态转换图&#xff0c;是不是感觉像在解读外星密码&#xff1f;作为嵌入式开发者&#xff0c;我们需要的不是死记硬背那些LP-11→LP-01的箭头指向&#xff0c;而…...