在 kubernetes 上持续部署有状态 apache flink 应用程序

2024-01-03

我想在 kubernetes 上运行 apache flink (1.11.1) 流应用程序。文件系统状态后端保存到 s3。 s3 的检查点正在运行

args:
  - "standalone-job"
    - "-s"
    - "s3://BUCKET_NAME/34619f2862ce3e5fc91d80eae13a434a/chk-4/_metadata"
    - "--job-classname"
    - "com.abc.def.MY_JOB"
    - "--kafka-broker"
    - "KAFKA_HOST:9092"

所以我面临的问题是:

  • 我必须手动选择以前的状态目录。有可能让它变得更好吗?
  • 该作业会增加 chk 目录,但不使用检查点。意味着当我第一次看到一个事件时我抛出一个新事件并将其存储到ListState<String>每当我通过 Gitlab 部署应用程序的较新版本时,它都会再次引发此事件。
  • 当我将 state.backend 定义到文件系统时,为什么必须在代码中显式启用检查点?env.enableCheckpointing(Duration.ofSeconds(60).toMillis()); and env.getCheckpointConfig().enableExternalizedCheckpoints(RETAIN_ON_CANCELLATION);

  • 你可能会更高兴Ververica 平台:社区版 https://www.ververica.com/getting-started,这将抽象级别提高到您不必处理此级别的细节的程度。它有一个在设计时考虑到 CI/CD 的 API。
  • 我不确定我是否理解您的第二点,但您的作业在恢复期间会倒带并重新处理一些数据,这是正常的。 Flink 不保证精确一次处理,而是保证精确一次语义:每个事件都会影响 Flink 管理的状态一次。这是通过回滚到最近检查点中的偏移量,并将所有其他状态回滚到消耗完这些偏移量的所有数据后的状态来完成的。
  • 拥有一个状态后端是必要的,因为它可以在作业运行时存储作业的工作状态。如果不启用检查点,则工作状态不会被检查点,并且无法恢复。但是,从 Flink 1.11 开始,您可以通过配置文件启用检查点,使用
execution.checkpointing.interval: 60000
execution.checkpointing.externalized-checkpoint-retention: RETAIN_ON_CANCELLATION
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 kubernetes 上持续部署有状态 apache flink 应用程序 的相关文章

随机推荐

  • CKEditor - 无工具栏

    所以我得到了一个textarea with CKEditor插件 但我只想让它干净 没有任何东西 没有工具栏 没有状态栏或任何栏 这很简单 但我在文档或网络上找不到它 My CKEditor开始于 texto ckeditor skin o
  • 升级到 Swift 3 后,属性“self.delegate”未在 super.init 调用中初始化

    升级到 Swift 3 后 我现在收到此错误 属性 self delegate 未在 super init 调用时初始化 在 NSObject 类上定义 open class NSObject NSObjectProtocol public
  • Android Oreo WebView 在第二次加载后渲染布局太小

    在某些 Android Oreo 设备上 当我第一次在 webview 上加载 url 时 URL 页面会正确加载 但是 当我再次加载 URL 时 页面会缩小 在低于 android oreo 的设备上 页面可以为所有设备正确加载 此外 当
  • VS2008 中“<<”和“++”的运算符优先级优化

    我遇到了一个奇怪的 VS2008 C 问题 看起来运算符优先级没有得到尊重 我的问题是这个的输出是什么 int i 0 std cout lt lt i 0 Not zero zero lt lt i lt lt std endl 通常情况
  • 如何在 WordPress 主题中包含 jQuery?

    我对 WordPress 还很陌生 我正在研究如何将 jQuery 包含到主题中 我将以下函数创建为函数 php theme function load java scripts Load FlexSlider JavaScript tha
  • 在选项卡栏开关上弹出到根导航控制器时出现问题

    尝试模仿 复制内置地址簿 特别是从 电话 应用程序内部编辑联系人或查看现有联系人信息时的行为 当您导航到另一个选项卡时 编辑状态将重置 并弹出 新联系人 或 信息 视图 以便当您返回 联系人 选项卡时 您将返回到根表视图 我使用 setEd
  • 如果没有锚点,则无法使用菜单弹出帮助程序

    我想在操作栏中使用弹出菜单项 当我在活动中使用它时一切正常 但是当我切换到片段时我得到 MenuPopupHelper cannot be used without an anchor 我的片段 Override public boolea
  • Django __str__ 返回非字符串(类型 NoneType)

    我正进入 状态 str returned non string type NoneType 编辑时出错Product模型对象 产品型号 class Product models Model ProductName models CharFi
  • 无法在 Ubuntu 18.04 LTS 上安装 rstanarm

    我无法安装rstanarm on R 3 5 3运行于Ubuntu 18 04 LTS 我使用了以下命令 install packages rstanarm and devtools install github stan dev rsta
  • 如何直接从 R 控制台打开工作目录?

    我怎样才能打开我的getwd 直接从 R 控制台获取文件夹 如果我想查看我最近刚刚导出到那里的东西 这很有用 谷歌搜索没有透露任何信息 我没有能力构建一个函数 如果您确实想要一个文件浏览器 您可以创建一个函数来打开目录 根据您使用的操作系统
  • 导入错误:使用 Azure SDK 时无法导入名称会话

    我正在使用 Azure SDK 运行代码 首先 我通过下载sdkpip install azure 然后我编写运行以下 python 代码 import requests import os make sure you configure
  • Rails Basecamp 风格子域最佳实践

    我的目标是为每个子域拥有单独的用户帐户 在任何情况下 我都不想在子域之间进行异花授粉 我看过了罗比 拉塞尔 http www robbyonrails com articles 2009 01 11 subdomain accounts w
  • 从 url mysql 或 python 中提取模式编号

    我有一堆 url 其中有一个字符串 hotel 4 digit number hotel1234 or slash 4digit html 1234 html 是否有正则表达式可以使用 python 或 mysql 提取 4 位数字 例如
  • 在 AWS Lambda 上使用来自 Python 的 NodeJS 4 脚本

    问题 我有一个在 AWS Lambda 上运行的 Python 脚本 该脚本正在使用subprocess执行 NodeJS 4 脚本 我尝试过什么 subprocess check output my script js 得到非零结果 得到
  • 更改外部变量的值

    我们在 File1 c 中有 int arr 10 在 File2 c 中 extern int arr int main arr 0 10 return 0 这样做可能会出现哪些问题以及为什么 数组不是指针 内存访问将会出错 In Fil
  • 从头开始实现 cv2.warpPerspective()

    我正在使用 OpenCV 函数进行一些实验cv2 warpPerspective当我决定从头开始编码以更好地理解它的管道时 尽管我 希望 遵循了每一个理论步骤 但似乎我仍然遗漏了一些东西 并且我正在努力理解什么 请你帮助我好吗 SRC 图像
  • 谷歌应用引擎支持环境变量吗?

    我注意到开发人员控制台似乎没有公开任何可以配置静态环境变量的地方 GAE 是否期望我将这些变量捆绑为构建服务器部署的一部分 如果是这样 GAE Google Cloud 上是否有任何文档介绍了原因或详细说明了其原理 几年过去了 仍然没有 我
  • Ruby 枚举器如何终止迭代?

    朋友们 我需要帮助解释一下 在下面的 Ruby 代码中 什么条件白蚁循环会做什么 它应该是一个无限循环 但是 它如何终止呢 Ruby code fib Enumerator new do y a b 1 loop do y lt lt a
  • 跟踪代码数据类型和操作

    跟踪代码允许企业 例如我们 在 Box 上的用户数据中存储一些本地 ID 我意识到需要在企业上启用该功能 我们的联系人正在处理 第一个问题 文档说它是一个 数组 其他答案表明它是一个 名称 值对 的数组 在数据类型中 Box API 到底将
  • 在 kubernetes 上持续部署有状态 apache flink 应用程序

    我想在 kubernetes 上运行 apache flink 1 11 1 流应用程序 文件系统状态后端保存到 s3 s3 的检查点正在运行 args standalone job s s3 BUCKET NAME 34619f2862c