如何迁移 Flink 任务到实时计算
简介: 本文由阿里巴巴技术专家景丽宁(砚田)分享,主要介绍如何迁移Flink任务到实时计算 Flink 中来。
通常用户在线下主要使用 Flink run,这会造成一些问题,比如:同一个配置因版本而变化;无法快速切换不同版本;无法从之前的作业恢复。
那么如何从线下迁移到线上呢?本文将通过下面四部分来向大家介绍。
一、如何迁移:从 Flink run 到流计算平台
如下图的线下命令如何迁移到线上。首先打开 VVP UI,添加基础配置,主要包括:作业名称、Jar URI、一些主要参数和并行度。还可以点击高级配置,配置更多信息。
比如高级配置里的行为配置,分为三部分:升级策略、初始状态和恢复策略。升级策略一般选择Stateless,初始状态选择Running,恢复策略选择Latest State。
升级策略选择Stateless,表示针对已经在运行的作业,编辑并保存配置后,会直接把原作业停掉,然后重新启动一个更新的作业;选择Stateble,针对正在运行的作业做配置编辑并保存的话,作业会先做一次Savepoint,然后加载新的配置并使用该 Savepoint启动新的作业。
恢复策略选择LatestSavepoint,是指作业在暂停情况下,如果再启动,将使用最新的Savepoint启动。
上面介绍的是 Flink 配置中比较重要的部分,下面图片显示的是另外一部分可以设置Checkpoint间隔等的配置,接下来是资源配置。日志配置部分可以选择日志保存位置,方便日后如果作业出现问题,可以方便的排查问题。
Flink 作业配置完成并启动运行后,如果出现异常,可以通过运行事件查看运行情况和问题。也可以打开 Flink UI的Job Manager,查看日志情况。
二、多Jar情况下,用户如何添加其他依赖的Jar
一些用户有自定义依赖且无法通过 fat jar 解决问题。举个例子,A用户有自己的main Jar和一些其他的Jar,这些Jar的应用场景不一样,那么首先需要在资源管理页面上传Jar包,上传完成之后就可以在页面使用该文件。
上传后再到高级配置中,找到“额外依赖的Jar”,下拉并选择刚刚上传的Jar 包就可以了。
三、用户如何通过配置文件定义作业
在资源管理里上传文件,然后在高级配置里选添加依赖,选择需要的依赖。如果启动函数里,main class是需要读取某个文件,先通过依赖添加文件,然后再根据提示的方式读取文件。
以上两个方式是放置用户Jar的方式,jar 和其他文件都可以在这里存放。
四、如何复用原来的state加速作业恢复
如果在运行作业时发现问题,一般情况下是停下来然后找到问题修复后再重启。用户需要在创建的时候指定 Checkpoint 需要的 OSS。 如果开启了Checkpoint,后续作业就可以直接从Checkpoint中恢复。
首先确认高级配置中恢复策略选择LatestState或LatestSavepoint。在这个前提下,可以暂停作业(千万不要停止作业),暂停会触发Savepoint,当再次点击启动时,会从这次Savepoint点恢复。
打开 Flink UI ,然后点击作业快照,在作业快照中可以查看 Flink Checkpoint指标,里面会显示Restore的次数和最后一次Restore的地址等信息,可确定作业是从最新的 State 恢复。
当作业正在运行,想对当前作业进项拷贝,如何操作呢?在作业控制页面点击Checkpoint,找到历史快照并点击其对应的最右侧的“从该快照复制作业”,那么就完成了把当前作业复制的操作,复制内容包括正在运行作业的Jar 包配置等。点击启动后,可以从作业快照中查看到新作业是从上个作业最近的一次Savepoint中复制启动的。
作者:景丽宁(砚田)
本文为阿里云原创内容,未经允许不得转载
如何迁移 Flink 任务到实时计算的更多相关文章
- 实时计算Flink on Kubernetes产品模式介绍
Flink产品介绍 目前实时计算的产品已经有两种模式,即共享模式和独享模式.这两种模式都是全托管方式,这种托管方式下用户不需要关心整个集群的运维.其次,共享模式和独享模式使用的都是Blink引擎.这两 ...
- Flink消费Kafka数据并把实时计算的结果导入到Redis
1. 完成的场景 在很多大数据场景下,要求数据形成数据流的形式进行计算和存储.上篇博客介绍了Flink消费Kafka数据实现Wordcount计算,这篇博客需要完成的是将实时计算的结果写到redis. ...
- Flink+kafka实现Wordcount实时计算
1. Flink Flink介绍: Flink 是一个针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.目前主要还是依靠开源社区的贡献而发展.对 Flink 而言,其所要处理的主要场 ...
- 可以穿梭时空的实时计算框架——Flink对时间的处理
Flink对于流处理架构的意义十分重要,Kafka让消息具有了持久化的能力,而处理数据,甚至穿越时间的能力都要靠Flink来完成. 在Streaming-大数据的未来一文中我们知道,对于流式处理最重要 ...
- 《大数据实时计算引擎 Flink 实战与性能优化》新专栏
基于 Flink 1.9 讲解的专栏,涉及入门.概念.原理.实战.性能调优.系统案例的讲解. 专栏介绍 扫码下面专栏二维码可以订阅该专栏 首发地址:http://www.54tianzhisheng. ...
- 一文让你彻底了解大数据实时计算引擎 Flink
前言 在上一篇文章 你公司到底需不需要引入实时计算引擎? 中我讲解了日常中常见的实时需求,然后分析了这些需求的实现方式,接着对比了实时计算和离线计算.随着这些年大数据的飞速发展,也出现了不少计算的框架 ...
- 基于Kafka的实时计算引擎如何选择?Flink or Spark?
1.前言 目前实时计算的业务场景越来越多,实时计算引擎技术及生态也越来越成熟.以Flink和Spark为首的实时计算引擎,成为实时计算场景的重点考虑对象.那么,今天就来聊一聊基于Kafka的实时计算引 ...
- Apache Flink 如何正确处理实时计算场景中的乱序数据
一.流式计算的未来 在谷歌发表了 GFS.BigTable.Google MapReduce 三篇论文后,大数据技术真正有了第一次飞跃,Hadoop 生态系统逐渐发展起来. Hadoop 在处理大批量 ...
- (二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分
系列随笔: (总览)基于商品属性的相似商品推荐算法 (一)基于商品属性的相似商品推荐算法--整体框架及处理流程 (二)基于商品属性的相似商品推荐算法--Flink SQL实时计算实现商品的隐式评分 ( ...
- 实时计算框架:Flink集群搭建与运行机制
一.Flink概述 1.基础简介 Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算.Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算.主要特性包 ...
随机推荐
- 算法研究之快速排序java版
很早之前就已经接触过快速排序算法了,面试当中也屡屡被问到,虽然明白其原理,但从未真正的用代码敲出来. 写关于算法的代码之前一定要原理想明白,不然就是盲目,在参考有关资料及自己的沉思之后,写出如下代码, ...
- Java Spring Redis 如何向Set中添加List?
调用list.toArray方法将list转成数组,再使用add方法参数传入数组,即可批量添加. redisTemplate.opsForSet().add(key,collect.toArray(n ...
- 2024-03-16:用go语言,给你一个正整数数组 nums, 每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。 (注意,在后续操作中你可以对减半过的数继续执行操作)
2024-03-16:用go语言,给你一个正整数数组 nums, 每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半. (注意,在后续操作中你可以对减半过的数继续执行操作) ...
- centos如何换源
centos如何换源? 万事先备份 mkdir -p /etc/yum/backup/ cp -r /etc/yum.repos.d/* /etc/yum/backup/ 1.将源文件备份 cd /e ...
- 3DCAT首届行业生态交流会|瑞云科技技术总监赵志杰:实时渲染助力元宇宙应用触手可及
2021年12月17日下午,由深圳市瑞云科技有限公司主办,深圳市虚拟现实产业联合会协办的 云XR如何赋能元宇宙--3DCAT实时云渲染首届行业生态合作交流会 圆满落幕.此次活动围绕 "云XR ...
- 三维模型OBJ格式轻量化的跨平台兼容性问题分析
三维模型OBJ格式轻量化的跨平台兼容性问题分析 三维模型的OBJ格式轻量化在跨平台兼容性方面具有重要意义,可以确保模型在不同平台和设备上的正确加载和渲染.本文将分析OBJ格式轻量化的跨平台兼容性技术, ...
- 【LeetCode刷题】69. x 的平方根
69.x的平方根(点击跳转LeetCode) 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去 ...
- 优化Mysql配置调整内存
1.查看Mysql版本 # mysql -V 示例: [root@root /]# mysql -V mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64 ...
- Java 本月、上月第一天和最后一天
//本月 @Test public void test01() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd&qu ...
- HandlerInterceptorAdapter和HandlerInterceptor的区别
其实归根揭底一个是抽象类,一个是接口,HandlerInterceptor是接口,它提供了所有方法,让开发人员必须实现所有方法, 而HandlerInterceptorAdapter是一个抽象类,它提 ...