dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1113|回复: 2

[大数据] 【尚硅谷】Flink1.13实战教程(涵盖所有flink-Java知识点)

[复制链接]
  • TA的每日心情
    开心
    2024-9-30 19:13
  • 签到天数: 216 天

    [LV.7]常住居民III

    10

    主题

    469

    帖子

    1618

    积分

    一代宗师

    Rank: 7Rank: 7Rank: 7

    积分
    1618

    发表于 2024-1-5 08:48:00 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    【尚硅谷】Flink1.13实战教程(涵盖所有flink-Java知识点)

    整理了一下Flink1.13关于故障转移、SQL以及监控和调试的新特性,个人能力有限,如果发现错误希望各位彦祖们能够及时指出,另外也欢迎大家积极补充(另外第一次接触Flink的小可爱们可以暂时忽略这条信息,等把武老师的视频学习完再瞅瞅也不迟):

    参考:Flink官网 https://ci.apache.org/projects/f ... e-notes/flink-1.13/

    1.故障转移(Failover):

            a. state.backend.async选项已弃用(Remove state.backend.async option)。 快照现在总是异步的(就像以前默认的那样),而且再也没有配置同步快照的选项了。  FsStateBackend和MemoryStateBackend的构造函数为同步/异步快照取一个标志,为API兼容性保留,但该标志现在被忽略。  

            b. 从checkpoint解绑状态后端(Disentangle StateBackends from Checkpointing)。Flink总是将本地状态存储与容错分离开来。 关键状态是在状态后端本地维护的,可以是在JVM堆上,也可以是在内嵌的RocksDB实例中。 容错来自检查点和保存点——任务内部状态到某些持久文件系统的周期性快照。历史上,Flink的StateBackend界面以一种让许多用户困惑的方式混合了这些概念。 在1.13中,检查点配置被提取到它们自己的接口CheckpointStorage中。此更改不会影响运行时行为,只是为用户提供更好的心智模型。 管道可以在不丢失状态、一致性或语义更改的情况下更新以使用新的抽象。  

            c. 统一键控状态保存点的二进制格式(Unify binary format for Keyed State savepoints)。Flink的保存点二进制格式在所有状态后端都是统一的。 这意味着您可以使用一个状态后端获取一个保存点,然后使用另一个状态后端恢复它。如果你想切换状态后端,你应该首先升级你的Flink版本到1.13,然后用新版本取一个保存点,只有在那之后,你才能用不同的状态后端恢复它。  

            d. FailureRateRestartBackoffTimeStrategy允许比配置少一次重启(FailureRateRestartBackoffTimeStrategy allows one less restart than configured)。失败率重启策略允许的每次间隔重启时间比配置的少1。 希望保持当前行为的用户应该将每次间隔允许的最大失败数减少1。  

            e.支持缩放未对齐检查点(Support rescaling for Unaligned Checkpoints)。当从未对齐的检查点恢复时,用户现在可以更改作业的并行性。 这一变化允许用户在反压力下快速升级工作。  

    2.SQL

            a. 正式弃用legacy planner(Officially deprecate the legacy planner)。旧的表和SQL API计划器已经被弃用,并将在Flink 1.14中删除。 这意味着BatchTableEnvironment和DataSet API互操作都将结束。 使用统一的TableEnvironment进行批处理和流处理,或者使用批处理执行模式下的DataStream API。  

            b.使用TIMESTAMP_LTZ作为函数PROCTIME()的返回类型(Use TIMESTAMP_LTZ as return type for function PROCTIME())。在Flink 1.13之前,PROCTIME()的函数返回类型是TIMESTAMP,返回值是UTC时区的TIMESTAMP,例如wall-clock显示的是201203-01 12:00:00 at Shanghai,而PROCTIME()显示的是201203-01 04:00:00,这是错误的。 Flink 1.13修复了这个问题,并使用TIMESTAMP_LTZ类型作为PROCTIME()的返回类型,用户不再需要处理时区问题。  

            c. 支持在TIMESTAMP_LTZ列上定义事件时间属性(Support defining event time attribute on TIMESTAMP_LTZ column)。支持在TIMESTAMP_LTZ列上定义事件时间属性,基于此,Flink SQL优雅地支持夏令时。

            d. 正确的函数CURRENT_TIMESTAMP/CURRENT_TIME/CURRENT_DATE/LOCALTIME/LOCALTIMESTAMP/NOW() 。时间函数CURRENT_TIMESTAMP和NOW()的值从TIMESTAMP类型的UTC时间修正为TIMESTAMP_LTZ类型的epoch时间。 时间函数LOCALTIME, LOCALTIMESTAMP, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP和NOW()将在批处理作业的查询开始时对每条记录进行一次计算。  

            e. 在数值类型和时间戳类型之间禁用有问题的转换(Disable problematic cast conversion between NUMERIC type and TIMESTAMP type)。在NUMERIC类型和TIMESTAMP类型之间的CAST操作是有问题的,现在被禁用了,例如CAST(NUMERIC AS TIMESTAMP(3))被禁用,应该使用TO_TIMESTAMP(FROM_UNIXTIME(NUMERIC))代替。  

            f. 支持使用模块语法(Support USE MODULES syntax)。术语MODULES现在是一个保留的关键字。 使用反勾号来转义列名和此名称的其他标识符。  

            g. 更新TableResult.collect()/TableResult.print()到新的类型system。对于列类型和行类型,Table.execute().collect()可能会返回略有不同的结果。 最重要的区别包括:  结构化类型表示为原始类的pojo,而不再是Row。原始类型根据TableConfig中的配置进行序列化。  

            h. 添加新的StreamTableEnvironment.fromDataStream。fromdatastream现在有稍微不同的语义,因为它已经集成到新的类型系统中。 特别是,与1.12相比,来自复合类型信息的行字段的顺序可能不同。 旧的行为仍然可以通过重载方法获取表达式,如fromDataStream(ds, $("field1"), $("field2"))。  

            i. 更新的行 Row.toString 方法。Row.toSting()方法已被重制。 这是一个不相容的变化。 如果测试仍然需要旧的表示,那么可以通过标志RowUtils恢复旧的行为。 用于本地JVM的USE_LEGACY_TO_STRING。 但是,依赖行的字符串表示进行测试通常不是一个好主意,因为字段数据类型没有得到验证。  

            j. 支持使用初始化SQL文件#启动SQL客户端。sql-client-defaults。 yaml yaml文件已弃用,在发布包中没有提供。 为了兼容,它仍然支持使用YAML文件初始化SQL Client(如果手动提供的话)。 但是建议使用新引入的-i startup选项来执行一个初始化SQL文件来设置SQL Client会话。 所谓的初始化SQL文件可以使用Flink ddl来定义可用的目录、表源和接收器、用户定义函数,以及执行和部署所需的其他属性。 对遗留SQL Client YAML文件的支持将在Flink 1.14中被完全删除。

            k. Hive方言不再支持DML和DQL的Flink语法。Hive方言支持HiveQL for DML和DQL。 为了使用Flink语法编写,请切换到默认方言。

    3.监控和调试(Monitoring & debugging)  

            a. 引入延迟跟踪状态(Introduce latency tracking state)。状态访问延迟指标被引入来跟踪所有类型的关键状态访问,以帮助调试状态性能。 这个特性在默认情况下是不启用的,可以通过设置state.backend.latency-track来开启。 keyed-state-enabled为true。  

            b. 支持CPU火焰图在web UI。Flink现在为作业图中的每个节点提供火焰图。 请通过设置相应的配置标志rest.flamegraph.enabled来启用这个实验特性。  

            c. 在Web UI中显示最近n个作业重启的异常/原因。Flink现在通过REST API和UI公开异常历史。 应该跟踪的最近处理的异常数量可以通过web.exception-history-size来定义。 作为这项工作的一部分,一些异常历史的REST API Json响应值已被弃用。  

            d.创建backPressuredTimeMsPerSecond metric。以前,idleTimeMsPerSecond被定义为等待输入或返回压力的时间任务。 现在,idleTimeMsPerSecond排除了返回压力时间,所以如果任务返回压力,它就不是空闲的。 反压时间现在被单独测量为backpressurredtimemspersecond。

            e. 默认情况下启用log4j2监视间隔。默认情况下,启用了在运行时更新Log4j配置的Log4j支持。 每30秒检查一次配置文件的更改。  

            f. ZooKeeper仲裁启动失败,缺少log4j库。由于Zookeeper 3.4和Log4j 2不兼容,Flink分发版中的Zookeeper脚本被修改为禁用Log4j JMX集成。 要重新启用此特性,请删除zookeeper.sh文件中设置zookeeper.jmx.log4j.disable的行。  

            g. 暴露任务初始化阶段。任务的运行状态分为两个状态:初始化和运行。 当状态正在初始化时,任务正在初始化,如果检查点未对齐,则直到所有飞行中的数据被恢复。  


    [color=rgba(0, 0, 0, 0.85)]

    [color=rgba(0, 0, 0, 0.85)]https://www.alipan.com/s/TmfzYUoj8Lf点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

    温馨提示:
    1、本站所有内容均为互联网收集或网友分享或网络购买,本站不破解、不翻录任何视频!
    2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
    3、本站资源仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
    4、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会第一时间改正!
    5、若发现链接失效了请联系管理员,管理员会在2小时内修复
    6、如果有任何疑问,请加客服QQ:1300822626 2小时内回复你!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:00
  • 签到天数: 436 天

    [LV.9]以坛为家II

    4

    主题

    3350

    帖子

    8085

    积分

    超凡入圣

    Rank: 10Rank: 10Rank: 10

    积分
    8085

    发表于 2024-1-5 09:16:09 | 显示全部楼层
    此帖仅作者可见

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-11 10:16
  • 签到天数: 34 天

    [LV.5]常住居民I

    0

    主题

    82

    帖子

    272

    积分

    豁然贯通

    Rank: 4

    积分
    272

    发表于 2024-1-5 09:21:38 | 显示全部楼层
    此帖仅作者可见

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-24 00:00 , Processed in 1.944400 second(s), 30 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表