如何跑通第一个 DataStream 作业

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 本文由阿里巴巴技术专家叶佳纯(自知)分享,主要介绍如何在实时计算 Flink 版中跑通 DataStream 作业。

作者 | 叶佳纯(自知),阿里巴巴技术专家

本文由阿里巴巴技术专家叶佳纯(自知)分享,主要介绍如何在实时计算 Flink 版中跑通 DataStream 作业。文章大纲如下:

  1. 准备工作
  2. 创建和启动作业
  3. Deployment 基本操作
  4. Deployment 配置
  5. Deployment 其他操作
  6. UI / Metrics 查看

前面三篇内容已经介绍了实时计算 Flink 在阿里云的整体情况和典型场景,从本篇开始将介绍实时计算 Flink 的系列操作,首先介绍如何跑通第一个DataStream。

在开始之前,首先为大家介绍在VVP上最基本最核心的资源—Deployment,Deployment包括应用的状态和相关配置,VVP会跟踪和汇报每一个Deployment的状态,产生相关的资源和信息。

准备工作

Jar打包上传,这里用社区的一个example,实际操作的时候可以用自己的开发应用。

幻灯片2.png

在VVP页面左侧,点击“资源上传”,然后点击右上角“上传资源”,将打包好的Jar上传。

image.png

创建和启动作业

创建作业有两种方式,第一种是直接通过上传的Jar点击创建作业,就会直接跳到创建页面;

image.png

第二种是直接在VVP左侧菜单点击创建作业,然后在Jar Uri选择需要执行的jar文件。

image.png

补充好作业名称等信息,作业就创建完成了。

image.png

创建作业后,在作业详情页可以看到一些基本操作和展示的基础信息。刚创建完的作业状态是Cancelled,可以点击状态栏右侧的“启动”来启动作业。

image.png

启动中,页面会显示当前实例,每一个实例都有唯一的ID。

image.png

在“运行事件”里,可以看到一些更详细的阶段性的 Event,Event也是一种资源类型。如下图光标所选位置,是Event告警的错误信息,如果点击左侧“+”号,可以看到日志详情。

image.png

当“运行事件”中Deployment的状态变成Running,说明作业启动成功。注意:同一时间只能运行一个Deployment实例,也就是说如果想要重新配置作业,那么需要先停掉运行中的作业,重新配置之后再重新启动新作业。

image.png

Deployment的基本操作

启动、暂停、停止是针对此作业的基本操作,不多做赘述。提醒删除功能只能针对处于Cancelled的作业操作,处于Running和Failed的作业是不能删除的。删除之后无法恢复,需要谨慎。

克隆是指,如果在不修改现有Deloyment的前提下,想做一些尝试性的配置或对比,那么可以先把作业克隆出来。

image.png

Deployment的配置

Deployment的配置可以在新建作业时修改,也可以在运行中进行修改。

幻灯片5.png

上图中的“升级策略”是指在修改Deployment时,是否需要重启,如果需要重启,是带状态重启还是不带状态重启。如下图如果选择None,那么在修改作业配置时不会影响当前正在运行的作业。

image.png

如果需要重启作业,有两种选择,Stateless是不带状态,即停止当前作业,并在调整配置重新启动一个新作业;Stateful是带状态,即在停作业前,对作业做一个Savepoint,然后用最新配置启动一个新作业并从这个Savepoint恢复。

image.png

恢复策略”有三个选项,None表示不带状态恢复作业;Latest Savepoint是指用最新的Savepoint恢复作业;Latest State是指用Checkpoint或Savepoint中最新的那个来恢复作业。当我们需要针对已经停止的作业重新启动时,会用到恢复策略。

image.png

下图左侧“创建Savepoint的最大重试次数”,因为Savepoint是写在OSS里的,如果遇到问题创建Savepoint失败了,重试次数是需要符合这里的配置的,超过最大配置次数Savepoint的操作就会失败。

下图右侧“创建实例的最大重试次数”,是指启动Deployment的最大重试次数,当遇到问题Deployment的重试超出了配置的次数,启动Deployment的状态就会变成红色的Failed。

image.png

Stop with Drain是指 stop接口是不是带Drain参数;标签是指可以给Deployment打多个标签,作用是可以在作业列表更快捷的搜索到所需要的Deployment。

image.png

附加依赖Jar”, 在这里不仅可以放额外的Jar,也可以放一些额外的资源文件。

image.png

Flink 版本”,现在只有1.10和1.11,两个版本可供选择。下图是 Flink 的常见配置,不再赘述。

image.png

Deployment 其他操作

作业快照的使用

作业快照的使用有几种方法:

第一种点击Savepoint一次就会触发Savepoint而留下快照;
第二种是运行中的作业,默认每10秒Checkpoint会留下一个快照;

作业快照还可以通过选择某个早期的快照而不是最近的去恢复作业。点击“从该快照复制作业”,就会folk一个Deployment,与克隆很像,但是这是指定了某个Savepoint的。复制后启动此作业的话,就会从指定的Savepoint恢复作业。

image.png

Secret Values

Secret Value只能使用在Jar URI和 Flink Configuration两个地方。

通常用在一些比较敏感的场景,比如Jar URI中的host部分不想暴露,那怎么做呢?点击VVP页面左侧“变量配置”,点击新增变量,在弹窗完善变量名称和变量值。

image.png

新建完成,可以看到仅仅显示新增变量名称,变量值是隐藏不显示的。然后去作业应用这个变量。

image.png

打开作业列表,选择应用作业,在Jar URI中设置变量。

image.png

UI / Metrics 查看

幻灯片7.png

如下图在页面中右侧有 “指标”,点击指标,跳转页面,即可查看作业的指标信息。

image.png

image.png

点击“ Flink UI”的页面。Flink UI有个使用技巧,当启动作业后,如果有问题导致VVP上一直显示启动中但实际作业已经起来了,那么在 Flink页面里能看到第一手的信息,可以通过 Flink UI点击查看。

image.png

社区二维码.png

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
Glide Caused by: javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified:
Glide Caused by: javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified:
1510 0
|
消息中间件 canal 缓存
项目实战:一步步实现高效缓存与数据库的数据一致性方案
Hello,大家好!我是热爱分享技术的小米。今天探讨在个人项目中如何保证数据一致性,尤其是在缓存与数据库同步时面临的挑战。文中介绍了常见的CacheAside模式,以及结合消息队列和请求串行化的方法,确保数据一致性。通过不同方案的分析,希望能给大家带来启发。如果你对这些技术感兴趣,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
604 6
项目实战:一步步实现高效缓存与数据库的数据一致性方案
|
9月前
|
存储 人工智能 BI
Paimon 1.0: Unified Lake Format for Data + AI
Paimon 1.0: Unified Lake Format for Data + AI
176 5
|
存储 消息中间件 分布式计算
某全球领先网络解决方案提供商:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 的改造实践
某全球领先网络解决方案提供商早期架构面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此,引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈,依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力,统一数据湖仓及查询分析引擎,显著提升了查询性能及系统稳定性,同时实现资源成本降低 30%。
357 8
某全球领先网络解决方案提供商:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 的改造实践
|
12月前
|
SQL 分布式计算 大数据
湖仓融合:MaxComputee与Hologres基于OpenLake的湖上解决方案
本次主题探讨湖仓融合:MaxCompute与Hologres基于OpenLake的湖上解决方案。首先从数据湖和数据仓库的历史及业界解决方案出发,分析湖仓融合的两种思路;接着针对国内问题,介绍阿里云如何通过MaxCompute和Hologres解决湖仓融合中的挑战,特别是在非结构化数据处理方面的能力。最后,重点讲解Object Table为湖仓增添了SQL生态的非结构化数据处理能力,提升数据处理效率和安全性,使用户能够在云端灵活处理各类数据。
|
消息中间件
RabbitMQ之死信队列
【1月更文挑战第10天】先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。 应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效。
656 112
|
自然语言处理 供应链 Cloud Native
天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台
随着云上时代日益蓬勃,云原生成为企业精益实践的最好“扶手”,助力企业在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
3527 109
天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台
|
数据采集 Java Linux
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
542 0
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
|
SQL Oracle 关系型数据库
实时计算 Flink版操作报错合集之连接器换成2.4.2之后,mysql作业一直报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
471 3
|
Java PHP
java.lang.UnsupportedOperationException怎么解决?
在Java中,`Arrays.asList()`方法用于将数组转换为列表,但返回的是一个固定大小的列表,它继承自`AbstractList`,不支持`add()`, `remove()`, 或其他可变操作。当尝试对这样的列表执行这些操作时,会抛出`UnsupportedOperationException`。
428 0