一杯咖啡半杯糖
让优秀成为一种习惯!
展开
-
【Flink】面试题精简版(持续更新)
作为大数据领域炙手可热的大数据组件,flink作为大数据行业跳槽必问的组件,整理一些Flink相关的面试题供大家参考,有些题言简意赅即可,大多数的博客冗余一堆的知识点,看完要好久,我想帮大家提炼总结出核心的点,以帮助大家临阵磨枪,短时间掌握,当你把知识提炼出来,你会发现你的知识进步了,当你把简单提炼的知识再用自己的语言详细的说出来,那你就成为很厉害的人了,希望帮助大家收获到自己满意的offer。1、Flink和Spark Streaming有什么区别1、Flink 是实时处理引擎,基于事件驱动。而原创 2022-05-01 09:00:00 · 17729 阅读 · 1 评论 -
Flink】FlinkSQL读取hive数据并使用hive原生函数
Hive在整个数仓中扮演了非常重要的一环,我们可以使用FlinkSQL实现对hive数据的读取并使用hive原生的函数做操作,方便后续的操作,本次例子为Flink1.13.6版本原创 2024-02-21 22:45:00 · 371 阅读 · 0 评论 -
【Flink】FlinkSQL实现数据从Hive到MySQL
未来Flink通用化,代码可能就会转换为sql进行执行,大数据开发工程师研发Flink会基于各个公司的大数据平台或者通用的大数据平台,去提交FlinkSQL实现任务,学习FlinkSQL势在必行。 本博客在sql-client(Flink自带的sql执行器)中模拟大数据平台的sql编辑器执行FlinkSQL,使用Flink实现数据从Hive传输到MySQL具体操作,本例子Flink版本1.13.6,具体操作如下:原创 2024-02-21 21:00:00 · 579 阅读 · 1 评论 -
【Flink】FlinkSQL读取hive数据(批量)
Hive在整个数仓中扮演了非常重要的一环,我们可以使用FlinkSQL实现对hive数据的读取,方便后续的操作,本次例子为Flink1.13.6版本原创 2024-02-20 20:00:00 · 873 阅读 · 0 评论 -
【Flink】NoResourceAvailableException: Could not acquire the minimum required resources.
[ERROR] Could not execute SQL statement. Reason:org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not acquire the minimum required resources.原创 2024-02-20 20:45:00 · 428 阅读 · 0 评论 -
【Flink】IllegalArgumentException: Embedded metastore is not allowed. Make sure you have set a valid
[ERROR] Could not execute SQL statement. Reason:java.lang.IllegalArgumentException: Embedded metastore is not allowed. Make sure you have set a valid value for hive.metastore.uris原创 2024-02-19 20:00:00 · 256 阅读 · 0 评论 -
【Flink】ClassNotFoundException: org.apache.hadoop.conf.Configuration
【Flink】ClassNotFoundException: org.apache.hadoop.conf.Configuration或者ClassNotFoundException: org.apache.hive.common.util.HiveVersionInfo都可解决原创 2024-02-19 19:45:00 · 581 阅读 · 0 评论 -
【Flink】FlinkSQL实现数据从Kafka到MySQL
未来Flink通用化,代码可能就会转换为sql进行执行,大数据开发工程师研发Flink会基于各个公司的大数据平台或者通用的大数据平台,去提交FlinkSQL实现任务,学习Flinksql势在必行。 本博客在sql-client中模拟大数据平台的sql编辑器执行FlinkSQL,使用Flink实现数据从Kafka传输到MySQL具体操作,这个在生产开发中比较常用,通常生产用kafka作为数据的输入,本例子Flink版本1.13.6,具体操作如下:原创 2024-02-06 20:45:00 · 1107 阅读 · 1 评论 -
【Flink】SQL-CLIENT中出现 Could not find any factory for identifier ‘kafka‘
[ERROR] Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'kafka' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.原创 2024-02-06 20:00:00 · 772 阅读 · 0 评论 -
【Flink】FlinkSQL的DataGen连接器(测试利器)
我们在实际开发过程中可以使用FlinkSQL的DataGen连接器实现FlinkSQL的批或者流模拟数据生成,DataGen 连接器允许按数据生成规则进行读取,但注意:DataGen连接器不支持复杂类型: Array,Map,Row。 请用计算列构造这些类型原创 2024-02-05 20:00:00 · 983 阅读 · 1 评论 -
【Flink】FlinkSQL实现数据从MySQL到MySQL
我们在实际开发过程中可以使用Flink实现数据从MySQL传输到MySQL具体操作,本例子Flink版本1.13.6,具体操作如下:原创 2024-02-01 21:45:00 · 602 阅读 · 0 评论 -
【Flink】UnknownTaskExecutorException: No TaskExecutor registered under container_e120_1704433285657_0
ERROR org.apache.flink.runtime.rest.handler.taskmanager.TaskManagerLogFileHandler [] - Unhandled exception.org.apache.flink.runtime.resourcemanager.exceptions.UnknownTaskExecutorException: No TaskExecutor registered under container_e120_1704433285657_0254原创 2024-01-21 09:30:00 · 240 阅读 · 0 评论 -
【Flink】FlinkSQL读取Mysql表中时间字段相差13个小时
Flink版本1.13,在我们使用FlinkSQL读取Mysql中数据的时候,发现读取出来的时间字段中的数据和Mysql表中的数据相差13个小时,Mysql建表语句及插入的数据如下;原创 2024-01-18 22:00:00 · 412 阅读 · 2 评论 -
【Flink】FlinkSQL出现ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
[ERROR] Could not execute SQL statement. Reason:java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer原创 2024-01-18 21:15:00 · 148 阅读 · 0 评论 -
【Flink】FlinkSQL出现Access denied for user ‘root‘@‘%‘ to database ‘192.168.0.1:3306/test‘
[ERROR] Could not execute SQL statement. Reason:java.sql.SQLSyntaxErrorException: Access denied for user 'root'@'%' to database '192.168.0.1:3306/test'原创 2024-01-18 21:00:00 · 93 阅读 · 0 评论 -
【Flink】The primary key is necessary when enable ‘Key: ‘scan.incremental.snapshot.enabled‘ , default:
[ERROR] Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: The primary key is necessary when enable 'Key: 'scan.incremental.snapshot.enabled' , default: true (fallback keys: [])' to 'true'原创 2023-12-14 21:30:00 · 1220 阅读 · 0 评论 -
【Flink】 ClassNotFoundException: com.ververica.cdc.debezium.utils.ResolvedSchemaUtils
[ERROR] Could not execute SQL statement. Reason:java.lang.ClassNotFoundException: com.ververica.cdc.debezium.utils.ResolvedSchemaUtils原创 2023-12-14 21:00:00 · 1275 阅读 · 0 评论 -
【Flink】 FlinkSQL客户端报 Could not execute SQL statement. Reason:java.net.ConnectException: 拒绝连接
[ERROR] Could not execute SQL statement. Reason:java.net.ConnectException: 拒绝连接原创 2023-12-06 21:15:00 · 969 阅读 · 0 评论 -
【Flink】ValidationException: Could not find any factory for identifier ‘jdbc‘ that implements ‘org.ap
[ERROR] Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'jdbc' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.原创 2023-12-06 21:00:00 · 1195 阅读 · 0 评论 -
【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案
1、背景:在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18,而数据库中原始数据如下,并没有到下午5点,这就导致了FlinkCDC读出来的时间和数据库中实际的时间不一致的情况,与数据库对比可以发现,这里的时间戳与数据库时间刚好相差了 8 个小时,在实际生产中这种情况是不原创 2023-09-14 20:45:00 · 2345 阅读 · 0 评论 -
【Flink】FlinkCDC自定义反序列化器
在我们用FlinkCDC采集mysql数据(或其他数据源)的时候,FlinkCDC输出的格式不标准,不利于我们后续做数据处理,我们通常会使用自定义反序列化器来格式化采集数据方便后续处理原创 2023-09-14 20:00:00 · 576 阅读 · 0 评论 -
【Flink】FlinkCDC报错Cannot read the binlog filename and position via ‘SHOW MASTER STATUS‘.
Caused by: io.debezium.DebeziumException: Cannot read the binlog filename and position via 'SHOW MASTER STATUS'. Make sure your server is correctly configured原创 2023-09-13 22:45:00 · 310 阅读 · 0 评论 -
【Flink】Flink提交流程
我们通常在学习的时候需要掌握大数据组件的原理以便更好的掌握这个大数据组件,Flink实际生产开发过程中最常见的就是提交到yarn上进行调度,模式使用的Per-Job模式,下面我们就给大家讲下Flink提交Per-Job任务到yarn上的流程,流程图如下原创 2023-08-23 21:30:00 · 796 阅读 · 0 评论 -
【Flink】Flink架构及组件
我们学习大数据知识的时候,需要知道大数据组件如何安装以及架构组件,这将帮助我们更好的了解大数据组件原创 2023-08-23 20:30:00 · 574 阅读 · 0 评论 -
【Flink】Flink窗口触发器
通常来说使用默认的触发器即可,但是有个特殊的使用情景,业务数据不一定是连续进入的,有的时候没有数据就没有水印生成也就没有触发计算,用户没有看到数据,但实际上不需要等到窗口结束才能获取结果,需要不断获取到中间结果,在固定的interval获取到窗口的中间结果。数据进入到窗口的时候,窗口是否触发后续的计算由窗口触发器决定,每种类型的窗口都有对应的窗口触发机制。通过对比 ProcessTime 和窗口结束时间戳确定是否触发窗口,如果 ProcessTime 的时间大于窗口结束时间戳则触发计算,反之不触发计算。原创 2023-08-18 21:00:00 · 1318 阅读 · 0 评论 -
【Flink】FlinkSQL如何触发执行计算
Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。原创 2023-03-02 18:31:21 · 670 阅读 · 0 评论 -
【Flink】FlinkSQL中执行计划以及如何用代码看执行计划
Table API 提供了一种机制来解释计算 Table 的逻辑和优化查询计划。Table.explain() 返回一个 Table 的计划。优化器不仅基于计划,而且还基于可从数据源获得的丰富统计信息以及每个算子(例如 io,cpu,网络和内存)的细粒度成本来做出明智的决策。注意: 当前仅在子查询重写的结合条件下支持 IN / EXISTS / NOT IN / NOT EXISTS。1、关系查询的抽象语法树(the Abstract Syntax Tree),即未优化的逻辑查询计划。原创 2023-03-03 20:00:00 · 1213 阅读 · 0 评论 -
【Flink】org.apache.flink.table.api.ValidationException: SQL validation failed
org.apache.flink.table.api.ValidationException: SQL validation failed原创 2023-03-02 22:15:00 · 1315 阅读 · 2 评论 -
【Flink】FlinkSQL中Table和DataStream互转
在我们实际使用Flink的时候会面临很多复杂的需求,很可能需要FlinkSQL和DataStream互相转换的情况,这就需要我们熟练掌握Table和DataStream互转,本篇博客给出详细代码以及执行结果,可直接使用,通过例子可学会Table和DataStream互转,具体步骤如下:原创 2023-03-02 17:59:32 · 654 阅读 · 0 评论 -
【Flink】自定义keyBy的KeySelector
这个对象的类型,KEY为最后返回的key的类型,我们返回的是Product对象的name值,是String类型,直接实现getKey这个类,返回Product对象的name值即可实现。来看最后的实现,通常我们不论是从哪个数据源传到flink中的数据(通常是kafka),我们会把数据转化为一个对象,红色部分就是自定义的KeySelector原创 2022-12-08 16:18:01 · 1594 阅读 · 0 评论 -
【Flink】解析参数之ParameterTool
在我们平时写程序的时候,会把很多参数提出来在命令行输入或者配置文件中读取,Flink源码中提供了解析多数据源(命令行、配置文件)的解析类ParameterTool,我们常用的就是命令行、配置文件这两种方式,省去我们自己写解析的逻辑,下面我们看下怎么使用ParameterTool原创 2022-12-07 16:54:57 · 1816 阅读 · 0 评论 -
【Flink】设置了watermark,没有使用watermark触发窗口计算
Flink的watermark和窗口计算在flink应用中很常用,但是有时候会出现由于第一次用导致出错的情况,下面这种情况就是设置了watermark,但是最后窗口计算没有使用watermark触发。原创 2022-12-05 11:08:48 · 878 阅读 · 0 评论 -
【Flink】Job was submitted in detached mode Please make sure your program doesn‘t call an eager execut
The program finished with the following exception:Job was submitted in detached mode. Results of job execution, such as accumulators, runtime, etc. are not available. Please make sure your program doesn't call an eager execution function [collect, print原创 2022-12-01 10:55:01 · 655 阅读 · 0 评论 -
【Flink】批处理HDFS文件(带完整源码,直接可使用)
本博客基于1.13.6版本Flink,实现批处理提交到yarn执行,并实现读取HDFS上文件实现批处理,有完整的Flink代码,已完成编译,开箱简单修改即可用,避免了大家编程、编译、提交yarn上的一些错误。本工程提供1、项目源码及详细注释,简单修改即可用在实际生产代码2、成功编译截图3、linux提交命令4、提交到yarn上截图5、自己编译过程中可能出现的问题6、执行结果原创 2022-12-01 10:26:19 · 2114 阅读 · 1 评论 -
【Flink】.ProgramInvocationException: Neither a ‘Main-Class‘, nor a ‘program-class‘ entry was found in
The program finished with the following exception:org.apache.flink.client.program.ProgramInvocationException: Neither a 'Main-Class', nor a 'program-class' entry was found in the jar file.原创 2022-11-30 16:34:26 · 1313 阅读 · 0 评论 -
【Flink】Specifying keys via field positions is only valid for tuple data types.
Exception in thread "main" org.apache.flink.api.common.InvalidProgramException: Specifying keys via field positions is only valid for tuple data types. Type: GenericType原创 2022-11-30 14:53:31 · 566 阅读 · 0 评论 -
【Flink】 传递优化参数-D不生效
在开发时,有同事遇到一个优化参数-D不生效的问题,定位了问题的原因,写下这篇文章,问题如下原创 2022-11-21 16:28:49 · 1194 阅读 · 0 评论 -
【FLink源码】 1.13 3 种 命令客户端 Generic CLI 、 yarn-cluster、DefaultCLI使用
综上所述,对于三种Cli,Generic CLI mode、yarn-cluster mode、default mode,无法同时使用,源码使用顺序为Generic CLI mode优先判断,接着是 yarn-cluster mode ,最后是default mode,所以对于三种Cli的参数,不能混用,否则会出现命令不生效的情况,例如下面的参数。Flink在执行命令行提交flink的时候会用到 flink安装目录bin目录下的flink脚本,输入flink -h 可以看到flink如何提交格式。原创 2022-11-21 16:15:45 · 911 阅读 · 0 评论 -
【Flink】从Kafka写入Kafka(带完整源码,直接可使用)
本博客基于1.13.6版本Flink,在Flink实际生产过程中需要把数据从kafka中读取,处理后写入kafka中继续其他的逻辑,本博客支持精准一次写入flink操作,适用于建设实时数仓过程中以及一些需要flink处理kafka的需求中,本程序可以在本地运行,也可提交到yarn上运行,有完整的Flink代码,已完成编译,开箱简单修改即可用,避免了大家编程、编译、提交yarn上的一些错误。本工程提供1、项目源码及详细注释,简单修改即可用在实际生产代码2、成功编译截图3、linux提交命令原创 2022-11-14 16:11:54 · 1198 阅读 · 0 评论 -
【Flink】 The transaction timeout is larger than the maximum value allowed by the broker
Flink The transaction timeout is larger than the maximum value allowed by the broker原创 2022-11-14 16:00:13 · 582 阅读 · 0 评论