Flink问题之source并行度不同导致任务没有数据落地如何解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。

问题一:‘=-yD Kerberos 认证问题


大家好

我们这里有通过-yd动态的提交Kerberos认证参数的需求 想问下这个jira为啥被标记为了won’t fix,谢谢 https://issues.apache.org/jira/browse/FLINK-12130


参考回答:

这个问题在最新的代码上已经修复了,在flink 1.9 上应该也是不存在这个问题的,你可以用下看看


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/373573


问题二:slot询问


我在的Flink是在yarn上跑,在yarn上部署了个yarn-session,命令如下:

./yarn-session.sh -jm 5120m -tm 10240m -s 30 -d -st

这里我是设置了一个tm上面跑30个slot,但是我在1.8版本的时候,是在yarn中会看到的是一个tm是使用一个cpu,但是我切换到了1.9.1后,发现是一个slot使用一个cpu,导致我设置的并行超出了yarn中的cpu资源。请问在1.9.1中,如果降低这个cpu使用率?


参考回答:

可以通过 “yarn.containers.vcores” 配置每个 TM 的 CPU。

这个配置项如果不配,默认是用slot数量,1.8 应该也是这个行为才对。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/373576


问题三:Flink1.9批任务yn和ys对任务的影响


跑tpcds的query1: flink run -m yarn-cluster -d -p 100 -yn 20 -ys 5 -yjm 60g -ytm 30g 任务可以正常执行 flink run -m yarn-cluster -d -p 100 -yn 10 -ys 10 -yjm 60g -ytm 30g 任务在做hashjoin的时候就会失败 报错是No pooled slot available and request to ResourceManager for new slot failed 搞不懂这有啥关系,求指教 faaron zheng


参考回答:

Flink 1.9 中 -yn参数应该是不生效的,后续版本中已经删除了这个参数。

根据你的参数,在每个 TM 的内存为30G不变的情况下,每个 TM

中的slot个数(-ys)从5变成10,也就意味着平均每个slot占用的内存变为了原来的一半。

Flink 1.9 的sql batch 算子对 flink managed memory 是有确定的需求的,很可能是这个变化导致单个 slot

的managed memory无法满足算子的资源需求了。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/373577


问题四:source并行度不同导致任务没有数据落地


最近碰到一个很头疼的事情,两个任务相同的sql语句不同的source,任务的并行度为8,一个source是kafka一个source是rabbitmq,kafka和rabbitmq中加载相同的数据后,source为rabbitmq的任务有数据落地,source为kafka的任务运行好几次都不见有数据落地。因为sql中涉及到了窗口,所以考虑过kafka多partition对数据读取顺序的影响,将所有数据都加载到kafka的同一个partition中重启任务后发现还是没有数据落地。考虑到这两个任务唯一的不同点就是源为rabbitmq的任务source算子的并行度为1,所以将源为kafka的任务的source并行度也设为1,运行任务后发现有数据落地了。source并行度的改变应该只是改变了一下source与其它算子之间的数据传递方式,这种改变会对最终的结果造成影响吗?有没有大佬碰到过相同的问题?

flink版本1.9.1

sql:select count(ps_comment) col1,ceil(stddev_pop(ps_availqty)) col2,

tumble_start(over_time,interval '72' hour) col3, tumble_end(over_time,interval '72' hour) col4, ps_date from cirrostream_kafka_ck_source_03_8x3 where ps_availqty <= 489 and ps_supplycost > 998 and ps_comment not like '%ff%' and ps_partkey <= 3751122 or ps_suppkey = 723 group by ps_date,ps_availqty,tumble(over_time,interval '72' hour) having min(ps_partkey) not in (3525711,3738707,3740245)


参考回答:

你是不是指定了Rowtime的列? 如果指定了,Kafka是否有的通道一直没有数据或者数据没有前进?

Window的输出触发是需要watermark前进的,这也就需要你的每个通道都有数据在时间上前进,也就是说每个Kafka的通道都需要有最新时间点的数据源源不断的来。

你设置成一个并发,那就只要一个通道有数据就可以了,所以绕过了这个问题。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/373587


问题五:Flink 1.9 SQL Kafka Connector,Json format,how to d


Flink 1.9 SQL Kafka Connector,Json format,how to deal with not json message? Hi community,when I write the flink ddl sql like this:

CREATE TABLE kafka_src ( id varchar, a varchar, b TIMESTAMP, c TIMESTAMP ) with ( ... 'format.type' = 'json', 'format.property-version' = '1', 'format.derive-schema' = 'true', 'update-mode' = 'append' );

If the message is not the json format ,there is a error in the log。 My question is that how to deal with the message which it not json format? My thought is that I can catch the exception in JsonRowDeserializationSchema deserialize() method,is there any parameters to do this? Thanks your replay.


参考回答:

I'm sorry there is no such configuration for json format currently. I think it makes sense to add such configuration like 'format.ignore-parse-errors' in csv format. I created FLINK-15396[1] to track this.


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/373589

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
1月前
|
流计算
在Flink中,你可以通过以下方法为join操作设置并行度
【2月更文挑战第27天】在Flink中,你可以通过以下方法为join操作设置并行度
21 3
|
1月前
|
API 数据库 流计算
有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
【2月更文挑战第27天】有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
47 3
|
24天前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
43 2
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
|
1月前
|
分布式计算 Hadoop Java
Flink CDC产品常见问题之tidb cdc 数据量大了就疯狂报空指针如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
1月前
|
资源调度 关系型数据库 测试技术
Flink CDC产品常见问题之没有报错但是一直监听不到数据如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
Java 中间件 流计算
Flink 如何分流数据
Flink 如何分流数据,3种分流方式
3846 0
|
2月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
476 5
|
30天前
|
SQL Java API
官宣|Apache Flink 1.19 发布公告
Apache Flink PMC(项目管理委员)很高兴地宣布发布 Apache Flink 1.19.0。
1071 1
官宣|Apache Flink 1.19 发布公告

相关产品

  • 实时计算 Flink版