Flink
香山上的麻雀1008
大数据
展开
-
Blink 任务运行报错
Blink 任务总是报错java.lang.Exception: Exception while creating StreamOperatorStateContext. at org.apache.flink.streaming.api.operators.StreamTaskStateInitializerImpl.streamOperatorStateContext(StreamTaskStateInitializerImpl.java:216) at org.apache.flink.stre原创 2022-04-20 14:06:23 · 818 阅读 · 3 评论 -
在使用flinkcdc同步多个表时遇到报错:A slave with the same server_uuid/server_id as this slave has connected to the
报错信息:flink version:flink-1.13.5cdc version:2.1.1 在使用flinkcdc同步多个表时遇到报错:org.apache.flink.runtime.JobException: Recovery is suppressed by FixedDelayRestartBackoffTimeStrategy(maxNumberRestartAttempts=3, backoffTimeMS=10000)at org.apache.flink.runtime.e原创 2022-02-17 14:01:02 · 6292 阅读 · 4 评论 -
Flink中的JobListener官方文档
ExecutionEnvironment 与 StreamExecutionEnvironment 均有 registerJobListener 方法,可以传进一个 JobListener,在作业提交以及完成的时候调用对应方法。当然,这需要你提交作业的客户端程序一直存在,直到作业完成并且对应函数被调用。https://nightlies.apache.org/flink/flink-docs-master/api/java/org/apache/flink/api/java/ExecutionEnviro原创 2022-01-10 19:39:07 · 2192 阅读 · 0 评论 -
flinksql的await
本文来自社区String initialValues = "INSERT INTO kafka\n" + "SELECT CAST(price AS DECIMAL(10, 2)), currency, " + " CAST(d AS DATE), CAST(t AS TIME(0)), CAST(ts AS TIMESTAMP(3))\n" + "FROM (VALUES (2.02,'Eur原创 2021-12-21 19:25:11 · 752 阅读 · 4 评论 -
flink SQL报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLj
问题flink SQL连接hive以及hudi 报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V,查询资料后发现就是guava版本冲突造成的。hive 3.1.2版本内置的guava是19.0版本的,而hadoop中的guava是27.0-jre版本的,flink内置的guava也有多个版本。彼此之间版本就冲突了原创 2021-10-12 21:21:01 · 3627 阅读 · 2 评论 -
Flink的checkpoint配置详解
实例:StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// start a checkpoint every 1000 msenv.enableCheckpointing(1000);// advanced options:// set mode to exactl...原创 2019-06-11 12:38:00 · 2086 阅读 · 0 评论 -
flinkSql 写入 hive 问题
来源于flink社区问题描述咨询一个flink问题。flinsql,能写入数据到hive表。但是hive表中的数据,都是基于 ".part,,,,inprogress,,,,"类似的文件。flink1.12.0 是基于cdh6.2.0编译的,hive版本是2.1.1、hadoop-3.0.0. 问题截图如下:创建hive表:SET table.sql-dialect=hive;CREATE TABLE hive_table ( user_id STRING, order_amoun.原创 2021-07-07 21:32:02 · 4072 阅读 · 2 评论 -
Flink程序与数据流
在运行时,Flink上运行的程序会被映射成逻辑数据流(dataflows)。Flink中的执行图可以分成四层:SreamGraph是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。JobGraphStreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。ExecutionGraph原创 2021-05-21 09:56:32 · 364 阅读 · 0 评论 -
flink1.12.2 CLI连接hive出现异常
问题描述使用flink1.12.2 CLI连接hive时,可以查看到catalog,也能看到指定的catalog下的tables,但是执行select语句时就出现异常。[ERROR] Could not execute SQL statement. Reason:org.apache.hadoop.ipc.RemoteException: Application with id 'application_1605840182730_29292' doesn't exist in RM. Please原创 2021-05-07 20:09:08 · 1246 阅读 · 0 评论 -
pyflink sql demo
from pyflink.table import EnvironmentSettings, StreamTableEnvironmentenv_settings = EnvironmentSettings.new_instance().in_streaming_mode().use_blink_planner().build()table_env = StreamTableEnvironment.create(environment_settings=env_settings)table = t原创 2021-03-31 20:50:23 · 816 阅读 · 0 评论 -
flink报错ByteArraySerializer is not an instance of org.apache.kafka.common.serialization.Serializer
文章目录问题描述报错信息问题解决方式一:方式二:问题描述代码如下:public class Sink_KafkaSink_1{ public static void main(String[] args) throws Exception { final ParameterTool params =ParameterTool.fromPropertiesFile(Sink_KafkaSink_1.class.getResourceAsStream("/pro.properti原创 2021-03-09 18:59:56 · 3505 阅读 · 5 评论 -
Flink checkpoint恢复疑问【未解决】
问题描述请问下,如果我代码逻辑有变动了,可以从历史的checkpoint恢复吗?我试了下,从历史的checkpoints恢复的话,并没有执行我的修改后的逻辑,例如原来逻辑是where flag=1 改为:where flag>1 ,从9点30的checkpoint :chk100 恢复,是不是 where flag>1的逻辑只会对9点30后的数据生效呢?问题解答...原创 2021-03-08 15:01:23 · 363 阅读 · 0 评论 -
flink版本:1.11.2, 从kafka读取数据写到hdfs,运行一段时间报错【未解决】
问题描述flink版本:1.11.2, 从kafka读取数据写到hdfs,运行一段时间报错代码CREATE TABLE T_ED_CELL_NUM_INFO_SRC( bigBox STRING, edCode STRING, mBoxAmount INT, mFaultBoxAmount INT, mFaultReserveBoxAmount INT, mReserveBoxAmount INT, mUseReserveBox INT,原创 2021-03-08 14:42:41 · 1413 阅读 · 11 评论 -
Flink Sql demo
CREATE TABLE t_stock_match_p_1( id VARCHAR, stkcode INT, volume INT, matchtime TIMESTAMP, WATERMARK FOR matchtime as matchtime) WITH ( 'connector' = 'kafka-0.10', 'topic' = 'xxx', 'scan.startup.mode' = 'latest-offset', 'properties.group原创 2021-03-08 14:02:11 · 529 阅读 · 0 评论 -
关于flinksql 与维表mysql的关联问题记录
此问题摘录自Flink中文社区邮件,仅仅作为记录用。Q:我有个问题想请教下,关于flinksql与mysql维表关联 关于mysql更新的问题 有没有好的方法?我现在使用的广播mysql但是有个问题,广播mysql时我的流数据已经到了但是mysql的数据还没有到导致我现在数据会再启动的时候丢失一部分数据。A:如果是想达到延迟JOIN的目的,可以考虑利用WaterMark的maxoutoforderness。job取消时做savepoint重启时应该不会有这个问题A:您的意思是open 全量预加原创 2021-03-05 18:48:08 · 819 阅读 · 0 评论 -
flink-mysql-cdc
mysql-cdc 表1:CREATE TABLE products (id INT,name STRING,description STRING) WITH ('connector' = 'mysql-cdc','hostname' = '10.60.11.21','port' = '3306','username' = 'root','password' = 'root','database-name' = 'mydb','table-name' = 'products');原创 2021-03-02 19:37:32 · 1500 阅读 · 0 评论 -
Flink实时读取Mongodb
说明:目前社区并没有开源的MongoDBSource但是Debezium 支持 MongoDB CDC[1],可以了解下:https://debezium.io/documentation/reference/connectors/mongodb.htmlhttps://debezium.io/documentation/reference/connectors/mongodb.html#mongodb-streaming-changes所以可以借助debezium的MongoDB原创 2021-03-02 16:04:27 · 3053 阅读 · 0 评论 -
Flink 报错 Hadoop is not in the classpath/dependencies.
D:\bigData\jdk\jdk1.8.0_271\bin\java.exe "-javaagent:D:\bigData\idea\2018.3\IntelliJ IDEA 2018.3.6\lib\idea_rt.jar=2566:D:\bigData\idea\2018.3\IntelliJ IDEA 2018.3.6\bin" -Dfile.encoding=UTF-8 -classpath D:\bigData\jdk\jdk1.8.0_271\jre\lib\charsets.jar;D:\原创 2021-02-24 11:19:36 · 1567 阅读 · 0 评论 -
Flink 使用 broadcast 实现维表或配置的实时更新
问题导读1. 本文介绍了几种维表方案?2. 各个方案有什么优缺点?3. broadcast 如何实现实时更新维表案例?通过本文你能 get 到以下知识:Flink 常见的一些维表关联的案例常见的维表方案及每种方案适用场景,优缺点案例:broadcast 实现维表或配置的实时更新一、案例分析维表服务在 Flink 中是一个经常遇到的业务场景,例如:客户端上报的用户行为日志只包含了城市 Id,可是下游处理数据需要城市名字商品的交易日志中只有商品 Id,下游分析数据需要用到商品所属的类转载 2021-02-23 17:21:18 · 1320 阅读 · 0 评论 -
Flink Table API 之 流式聚合
本文由 简悦 SimpRead 转码, 原文地址 ci.apache.org应用开发Table API & SQLPerformance Tuning流式聚合SQL 是数据分析中使用最广泛的语言。Flink Table API 和 SQL 使用户能够以更少的时间和精力定义高效的流分析应用程序。此外,Flink Table API 和 SQL 是高效优化过的,它集成了许多查询优化和算子优化。但并不是所有的优化都是默认开启的,因此对于某些工作负载,可以通过打开某些选项来提高性能。在这.转载 2021-02-19 10:24:08 · 787 阅读 · 0 评论 -
FLINK消费kafka 报错java.lang.OutOfMemoryError: Direct buffer memory
此问题摘自flink社区,如有问题请留言。问题描述flink 消费kafka 报错,kafka中的数据目前也不大,10个g左右有时候几个小时报错,有时候3,5分钟报错,是不是kafka的参数没有设置好呢?目前jvm设置为16G,TM 内存也设置比较高的Caused by: java.lang.OutOfMemoryError: Direct buffer memory. The directout-of-memory error has occurred. This can mean two .原创 2021-02-19 09:54:05 · 2939 阅读 · 0 评论 -
flink 集成 Hadoop3
Flink自1.11 版本之后就已经支持了hadoop3 [1][2],具体来讲就是将 HADOOP_CLASSPATH 配置成运行机器上的hadoop3 相关jar包即可。你也可以参照 [3] 的测试步骤[1] https://issues.apache.org/jira/browse/FLINK-11086[2]https://ci.apache.org/projects/flink/flink-docs-stable/deployment/resource-providers/yarn.html原创 2021-02-08 15:35:35 · 2848 阅读 · 1 评论 -
Flink 中 slot ,task,并行度的概念以及与CPU,内存的关系
我们在学习Flink时,经常会听到 task,slot,线程以及并行度这几个概念,对于初学者来说,这几个概念关系以及它们与系统内存,CPU之间的关系经常搞不清楚,下面我们就通过这篇文章来弄清楚这些概念与关系。并行度特定算子的子任务(subtask)的个数称之为并行度(parallel),一般情况下,一个数据流的并行度可以认为是其所有算子中最大的并行度。Flink中每个算子都可以在代码中通过.setParallelism(n)来重新设置并行度。而并行执行的subtask要发布到不同的slot中去执行。T原创 2021-02-04 22:47:40 · 11973 阅读 · 16 评论 -
Flink 任务提交流程
任务提交流程任务提交到Yarn流程任务调度原理问题:怎样实现并行计算多线程执行任务并行的任务,需要占用多少slot占用的slot跟所有任务的最大并行度有关一个流处理程序,到底包含多少个任务?...转载 2021-02-03 20:07:06 · 662 阅读 · 0 评论 -
Flink 运行时架构
作业管理器(JobManager)控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager 所控制执行。JobManager 会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其它资源的JAR包。JobManager 会把 JobGraph 转换成一个物理层面的数据流图,这个图被叫做“执行图”(ExecutionGraph),包含了所有可以并发执行的任务。J.转载 2021-02-03 19:49:37 · 366 阅读 · 0 评论 -
Flink job与自己系统平台的一体化集成
注:方案来自于Flink 社区,未经验证,收集整理待以后备用可以分解为两步:1、生成JobGraph,可以参考org.apache.flink.runtime.webmonitor.handlers.utils.JarHandlerUtils中 toJobGraph()2、向Yarn提交JobGraph,可以参考org.apache.flink.yarn.YarnClusterDescriptor 中deployJobCluster()注:1.11.x...原创 2021-02-03 14:09:36 · 338 阅读 · 0 评论 -
pyflink1.11 udf demo
s_env = StreamExecutionEnvironment.get_execution_environment()s_env.set_stream_time_characteristic(TimeCharacteristic.EventTime)# s_env.set_parallelism(8)env = StreamTableEnvironment.create(s_env, environment_settings=EnvironmentSettings.new_instanc原创 2021-02-03 13:16:20 · 484 阅读 · 0 评论 -
【Flink 使用注意】关于Checkpoint的tolerableCheckpointFailureNumber的使用
我们在使用checkpoint时,会遇到这样一个参数设置:env.getCheckpointConfig().setTolerableCheckpointFailureNumber(1);tolerableCheckpointFailureNumber 限制的是最大可容忍的连续失败checkpoint计数 continuousFailureCounter 参考链接[1],例如将tolerableCheckpointFailureNumber 设置成3,连续失败3次,continuousFailureC原创 2021-01-29 13:20:40 · 2822 阅读 · 0 评论 -
【Flink 纠错】flink-1.12 通过 -t 指定模式后无法指定yarn参数
问题描述我们使用flink 1.12提交任务到yarn时,遇到个比较奇怪的问题,我们的提交命令如下:flink-1.12.0/bin/flink run -ynm chenTest -t yarn-per-job -yqu da_team -c com.test.FlinkTest Flink-1.0-SNAPSHOT.jar通过参数指定application名称和yarn队列后,我们发现任务在yarn上的名称并不是-ynm定义的,并且提交的队列也不对。后面我们换成 -m 指定提交模式后就正常了。原创 2021-01-29 09:43:25 · 1648 阅读 · 0 评论 -
【Flink纠错】IllegalArgumentException: key group from 44 to 45 does not contain 4
二次keyby的原因是为了解决数据倾斜问题,第一个keyby用来基于EventTime的翻滚窗口,第二个keyby使用了基于processTime的session窗口DataStream stream = dataStream .keyBy(keyBy(globalParallelism)) .window(window(downsampling)) .reduce(reduce(trackerType), processWindow(track原创 2021-01-29 09:28:30 · 1689 阅读 · 1 评论 -
Flink消费Kafka写入Hive
flink run \-m yarn-cluster \-ys 2 \-yjm 2g \-ytm 4g \-c com.xxxxx.flink.app.incr.TradeOrderBinlogResolveApp \-d \/opt/tools/flink-1.12.0/xxxxx-realtime-etl-1.0-SNAPSHOT.jarpackage com.xxxxx.flink.app.incr;import com.alibaba.otter.canal.protocol.原创 2021-01-28 20:28:19 · 2347 阅读 · 3 评论 -
Flink 读写ORC文件,AVRO文件,Parquet文件
这里有封装好的工具类:地址:https://github.com/apache/iceberg/tree/master/flink/src/main/java/org/apache/iceberg/flink/data原创 2021-01-24 09:34:26 · 2134 阅读 · 3 评论 -
flink cdc 读取mysql的binlog写入hive中
package com.zallsteel.flink.app.log;import com.google.gson.Gson;import com.zallsteel.flink.entity.ChangelogVO;import com.zallsteel.flink.utils.ConfigUtils;import org.apache.commons.lang3.time.FastDateFormat;import org.apache.flink.api.common.eventt原创 2021-01-20 09:53:00 · 4958 阅读 · 9 评论 -
代码中如何取消正在运行的Flink Streaming作业
1可以通过 StreamExecutionEnvironment#executeAsync 提交作业,返回 JobClient [1], 通过JobClient 可以 cancel 作业,获取 job status。[1] https://cwiki.apache.org/confluence/display/FLINK/FLIP-74%3A+Flink+JobClient+API2如果是想做一个作业管理的平台,可以尝试看一下 CliFrontend[1] 中相关的逻辑,对于 On Yarn的作原创 2021-01-15 13:15:47 · 2311 阅读 · 0 评论 -
Flink连接Hive代码测试案例
import org.apache.flink.table.api.{EnvironmentSettings, StatementSet, Table, TableEnvironment, TableResult}import org.apache.flink.table.catalog.hive.HiveCatalogimport org.apache.flink.types.Rowimport org.apache.flink.util.CloseableIterator/** * @pa原创 2021-01-15 09:48:55 · 1444 阅读 · 1 评论 -
【Flink答疑】Flink sql 状态过期后,checkpoint 大小没变化
版本: 1.12.0方式: flink sql测试sql:select a.id,b.money,b.createTime from test_state_from afull join test_state_from1 b on a.id=b.id;问题:test_state_from和test_state_from1 分别插入50万条数据,查看 checkpoint 大小为83m,state ttl 设 置为16分钟,30分钟后查看checkpoint的值还是83m,状态过期清理原创 2021-01-15 09:35:43 · 1663 阅读 · 1 评论 -
【Flink 使用注意】Flink checkpoint清除策略使用指南
文章目录Flink Checkpoint 目录的清除策略应用代码Flink源码需要注意Flink Checkpoint 目录的清除策略应用代码CheckpointConfig checkPointConfig = streamEnv.getCheckpointConfig();checkPointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);checkPointConfig.setCheckpointTimeout(1 *原创 2021-01-14 20:16:25 · 4552 阅读 · 0 评论 -
【Flink纠错】The method requestJob‘s result size 19811407 exceeds the maximum size 10485760
完整log日志见最后报错信息:关键报错信息是:org.apache.flink.runtime.rpc.akka.exceptions.AkkaRpcException:The method requestJob's result size 19811407 exceeds the maximum size 10485760 .这是flink的Akka部分报的错,相关源码如下:https://github.com/apache/flink/blob/d093611b5dfab95fe62e4f原创 2021-01-14 19:47:37 · 1130 阅读 · 0 评论 -
【flink源码解读 】flink 生成watermark的默认时间间隔
默认间隔是200ms(1) 在 StreamExecutionEnvironmennt的方法有体现@PublicEvolvingpublic void setStreamTimeCharacteristic(TimeCharacteristic characteristic) { this.timeCharacteristic = Preconditions.checkNotNull(characteristic); if (characteristic == TimeCharacteristic原创 2021-01-14 09:50:36 · 852 阅读 · 1 评论 -
FlinkSQL 维表中的async参数使用介绍
在维表的DDL的WITH参数中添加async='true',Async 相关参数如下。参数说明是否必填备注async 是否开启异步请求 否 默认值为fasle。asyncResultOrder 异步结果顺序取值如下:unordered(默认值):无序。ordered:有序。asyncTimeoutMs 异步请求的超时时间 否 单位毫秒,默认值为3分钟。asyncCapacity 异步请求的队列容量 否 默认值为100。asyncCallbackThreads 回调处理线程数 否回调类中原创 2021-01-12 20:07:17 · 795 阅读 · 1 评论
分享