docker环境下安装flink

前言

flink在实时计算领域中有着举足轻重的地位。这篇文章来介绍一下,在linux的docker环境下,怎么快速安装一个单机版本的flink。

操作流程

环境准备

检查docker环境是不是正常,如果在拉取镜像的时候比较慢,建议使用镜像加速,比如使用腾讯云的镜像加速

cat /etc/docker/daemon.json 
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

执行完成后,重启docker

拉取flink镜像

docker pull apache/flink:1.18.0-scala_2.12-java11

注:这个版本的镜像体积相对比较小 

启动JobManager

docker run -d --name flink-jobmanager  -p 8081:8081 -p 6123:6123 --restart=always flink:1.18.0-scala_2.12-java11 jobmanager

参数说明:

  • -d:让容器在后台运行。

  • --name flink-jobmanager:为容器指定名称为 flink-jobmanager

  • -p 8081:8081:将容器的 8081 端口映射到宿主机的 8081 端口,通过该端口可以访问 Flink 的 Web UI。

  • -p 6123:6123:将容器的 6123 端口映射到宿主机的 6123 端口,此端口用于作业管理器的内部通信。

  • flink:1.18.0-scala_2.12-java11:指定要使用的 Flink 镜像。

  • jobmanager:表示启动的是作业管理器。

  • --restart 表示容器挂掉后会自动重启容器

获取JobManager的IP地址

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' flink-jobmanager

启动TaskManager

docker run -d --name flink-taskmanager -e JOB_MANAGER_RPC_ADDRESS=172.17.0.3 -p 6121:6121 -p 6122:6122 --restart=always flink:1.18.0-scala_2.12-java11 taskmanager

参数说明:

  • -d:让容器在后台运行。
  • --name flink-taskmanager:为容器指定名称为 flink-taskmanager
  • -e JOB_MANAGER_RPC_ADDRESS=xxxx:指定作业管理器的 RPC 地址,这个地址是上一步得到的
  • -p 6121:6121-p 6122:6122:分别将容器的 6121 和 6122 端口映射到宿主机的对应端口,这两个端口用于任务管理器的内部通信。
  • flink:1.18.0-scala_2.12-java11:指定要使用的 Flink 镜像。
  • taskmanager:表示启动的是任务管理器。

验证安装

访问 Web UI

打开浏览器,访问 http://<你的服务器 IP 地址>:8081,若能看到 Flink 的 Web UI 界面,说明 Flink 单机版已成功启动。在该界面中,你可以查看作业管理器和任务管理器的状态、提交作业等。

这里需要注意,如果使用的是公有云,需要开对应的防火墙策略

检查容器状态
docker ps

通过这个docker命令,可以查询到正在运行中的docker容器,如果运行列表中包含flink-jobmanager、fink-taskmanager,说明启动ok

停止和清理

停止正在运行中的flink容器、删除容器

docker stop flink-jobmanager fink-taskmanager
docker rm flink-jobmanager fink-taskmanager

总结

通过上面的安装教程,一个简单的单机版的flink就安装成功了。这里将JobManager和TaskManager进行分开部署,这样做的好处有如下几点

  • 功能分离
  • 可扩展性
  • 容错和高可用性
  • 资源隔离
  • 方便维护和管理

最后,总结了下常见的docker容器的操作命令

# 查询所有的容器
docker ps -a# 查询对应name容器的容器id
docker ps -qf "name=flink-jobmanager"# 实时查看docker容器的日志
docker logs -f afa4783601bc
# 查看最近100行日志
docker logs --tail=100 afa4783601bc# 查询容器详细的信息
docker inspect afa4783601bc

当然,更主流的做法是使用docker compose来进行部署,后面会来一章详细介绍docker compose! 

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

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

相关文章

LeetCode 2614.对角线上的质数:遍历(质数判断)

【LetMeFly】2614.对角线上的质数&#xff1a;遍历(质数判断) 力扣题目链接&#xff1a;https://leetcode.cn/problems/prime-in-diagonal/ 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数&…

MongoDB 只能存储能够序列化的数据(比如字符串、数字等),而 Python 的 UUID 对象并不是直接可以存入数据库的格式。

1. UUID 对象是什么&#xff1f; UUID 是 “Universally Unique Identifier”&#xff08;通用唯一识别码&#xff09;的缩写&#xff0c;是一种 128 位的数字&#xff0c;用于在全局范围内生成一个唯一的标识符。它常用于数据库中的记录标识、分布式系统中的对象标识等场景。…

linux 安全 xshell 使用

目录和文件 ls -l 查看目录和文件的权限的设置情况 加固方法 对于重要目录&#xff0c;建议执行如下类似操作 Chmod -R 750 /etc/rc.d/init.d/* 这样只有root可以读写和执行这个目录下的脚本 新建了一个用户Q 写入了一些信息 发现在root用户下可以进行文件打开 接下来用普通用…

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学&#xff1a;从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中&#xff0c;我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程&#xff0c;其中提到了特征提取模块对传感器数据进行线性…

杨校老师课堂之编程入门与软件安装【图文笔记】

亲爱的同学们&#xff0c;热烈欢迎踏入青少年编程的奇妙世界&#xff01; 我是你们的授课老师杨校 &#xff0c;期待与大家一同开启编程之旅。 1. 轻松叩开编程之门 1.1 程序的定义及生活中的应用 程序是人与计算机沟通的工具。在日常生活中&#xff0c;像手机里的各类 APP、电…

DeepSeek 3FS 与 JuiceFS:架构与特性比较

近期&#xff0c;DeepSeek 开源了其文件系统 Fire-Flyer File System (3FS)&#xff0c;使得文件系统这一有着 70 多年历时的“古老”的技术&#xff0c;又获得了各方的关注。在 AI 业务中&#xff0c;企业需要处理大量的文本、图像、视频等非结构化数据&#xff0c;还需要应对…

Coco AI 智能检索 Hugo Blog 集成指南

在此前的文章中&#xff0c;我们介绍了如何使用 Coco Server 连接 Notion&#xff0c;实现智能内容检索。本次&#xff0c;我们将进一步探索如何在 Coco Server 最新版本 中集成 Hugo Site&#xff0c;以便对 Hugo 站点 进行高效检索。 Coco Server 部署方式 要在本地或服务器…

Mobile-Agent-V:通过视频引导的多智体协作学习移动设备操作

25年2月来自北京交大和阿里巴巴公司的论文“Mobile-Agent-V: Learning Mobile Device Operation Through Video-Guided Multi-Agent Collaboration”。 移动设备使用量的快速增长&#xff0c;迫切需要改进自动化以实现无缝任务管理。然而&#xff0c;因缺乏操作知识&#xff0…

电鱼智能EFISH-RK3576-SBC工控板已适配Android 14系统

EFISH-RK3576-SBC工控板此前已提供了Linux 6.1.57系统&#xff0c;为了满足更多客户的需求&#xff0c;电鱼智能近日又为其成功适配了Android 14系统——硬件性能卓越的核心板与Android 14的深度组合&#xff0c;将为用户带来更加流畅、开放、智能的使用体验。 一、高性能处理器…

正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-5.1 uboot顶层Makefile分析-VSCode工程创建

前言&#xff1a; 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用&#xff1a; …

java 使用命令创建jar的常用参数整理

在Java中&#xff0c;创建JAR文件的命令是jar。以下是常用参数的表格展示&#xff1a; 参数信息含义使用场景使用示例c创建新的JAR文件用于创建一个新的JAR文件当需要打包类文件和资源文件时jar cf myapp.jar MyClass.classt列出JAR文件内容显示JAR文件中的内容列表查看JAR文件…

无线头戴式摄像头系统:无需标记点摄像头智能捕捉人脸表情

AH-T无线头戴式摄像头系统是一款可以精准捕捉人脸面部细微表情的设备&#xff0c;基于单目无标记点摄像头智能识别算法&#xff0c;无需在脸上粘贴标记点即可实现真人细微脸部表情的精准捕捉&#xff0c;采用头盔&#xff0c;面捕摄像头一体式人性化设计&#xff0c;可以让使用…

Cursor IDE 入门指南

什么是 Cursor? Cursor 是一款集成了 AI 功能的现代代码编辑器&#xff0c;基于 VSCode 开发&#xff0c;专为提高开发效率而设计。它内置强大的 AI 助手功能&#xff0c;能够理解代码、生成代码、解决问题&#xff0c;帮助开发者更快、更智能地完成编程任务。 基础功能 1.…

Tailwind CSS 中的 spacing 详解

&#x1f50d; Tailwind CSS 中的 spacing 详解 spacing&#xff08;间距&#xff09;是 Tailwind CSS 里的一个核心概念&#xff0c;它主要用于控制 padding&#xff08;内边距&#xff09;、margin&#xff08;外边距&#xff09;、width&#xff08;宽度&#xff09;、heig…

go语言学习教程推荐,零基础到做项目

一、基础入门阶段 官方教程&#xff08;免费&#xff09; • A Tour of Go&#xff1a;交互式入门教程&#xff0c;边学边练 • Go by Example&#xff1a;通过300代码片段学习语法 入门书籍 • &#x1f4d8;《Go语言圣经》中文版&#xff08;免费在线阅读&#xff09;&#…

STM32---FreeRTOS内存管理实验

一、简介 1、FreeRTOS内存管理简介 2、FreeRTOS提供的内存管理算法 1、heap_1内存管理算法 2、heap_2内存管理算法 4、heap_4内存管理算法 5、heap_5内存管理算法 二、FreeRTOS内存管理相关API函数介绍 三、 FreeRTOS内存管理实验 1、代码 main.c #include "st…

常见的前端安全问题

前端安全是 Web 开发中至关重要的一环&#xff0c;以下是常见的前端安全问题及对应的防御措施&#xff1a; 1. XSS&#xff08;跨站脚本攻击&#xff09; 攻击原理 攻击者向页面注入恶意脚本&#xff08;如 JavaScript&#xff09;&#xff0c;在用户浏览器中执行&#xff0c;…

【VUE】ant design vue实现表格table上下拖拽排序

适合版本&#xff1a;ant design vue 1.7.8 实现效果&#xff1a; 代码&#xff1a; <template><div class"table-container"><a-table:columns"columns":dataSource"tableData":rowKey"record > record.id":row…

深入解析ES6+新语法:复杂的迭代器与生成器

一、迭代器&#xff08;Iterator&#xff09;&#xff1a;数据遍历的统一协议 1. 迭代器协议的本质 **迭代器协议&#xff08;Iterator Protocol&#xff09;** 是一种标准化的数据访问接口&#xff0c;它要求对象实现一个 next() 方法&#xff0c;每次调用返回包含 { valu…

LangChain介绍(开源大语言模型LLM应用构建框架,提供完整工具和组件,使开发者能够创建复杂、交互式且上下文感知的LLM应用)LangServe

文章目录 LangChain&#xff1a;构建LLM应用的强大框架引言LangChain核心理念- 超越模型训练数据的局限性- 访问最新信息- 与外部系统交互- 执行复杂推理链 核心组件体系1. 模型&#xff08;Models&#xff09;- **LLMs**&#xff1a;如OpenAI、Anthropic、Cohere等提供的完成型…