首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Lansonli技术博客

    2021年数据Flink(十七):Flink基石

    ---- Flink基石 Flink之所以能这么流行,离不开它最重要的四个基石:Checkpoint、State、Time、Window。 Checkpoint 这是Flink最重要的一个特性。 Flink基于Chandy-Lamport算法实现了一个分布式的一致性的快照,从而提供了一致性的语义。 Chandy-Lamport算法实际上在1985年的时候已经被提出来,但并没有被很广泛的应用,而Flink则把这个算法发扬光大了。 Time 除此之外,Flink还实现了Watermark的机制,能够支持基于事件的时间的处理,能够容忍迟到/乱序的数据。 Window 另外流计算中一般在对流数据进行操作之前都会先进行开窗,即基于一个什么样的窗口上做这个计算。Flink提供了开箱即用的各种窗口,比如滑动窗口、滚动窗口、会话窗口以及非常灵活的自定义的窗口。

    1.2K30发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(八):Flink入门案例

    1.准备环境-env 2.准备数据-source 3.处理数据-transformation 4.输出结果-sink 5.触发执行-execute 其中创建环境可以使用如下3种方式: getExecutionEnvironment  * 编码步骤  * 1.准备环境-env  * 2.准备数据-source  * 3.处理数据-transformation  * 4.输出结果-sink  * 5.触发执行-execute//如果有  * 3.处理数据-transformation  * 4.输出结果-sink  * 5.触发执行-execute  */ public class WordCount2 {     public static 表达式  * 编码步骤  * 1.准备环境-env  * 2.准备数据-source  * 3.处理数据-transformation  * 4.输出结果-sink  * 5.触发执行-execute  * 3.处理数据-transformation  * 4.输出结果-sink  * 5.触发执行-execute//批处理不需要调用!

    1.5K40发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(九):Flink原理初探

    、SubTask、Parallelism 1.Dataflow:Flink程序在执行的时候会被映射成一个数据流模型 2.Operator:数据流模型中的每一个操作被称作Operator,Operator 分为:Source/Transform/Sink 3.Partition:数据流模型是分布式的和并行的,执行中会形成1~n个分区 4.Subtask:多个分区任务可以并行,每一个都是独立运行在一个线程中的 Flink执行图(ExecutionGraph) 由Flink程序直接映射成的数据流图是StreamGraph,也被称为逻辑流图,因为它们表示的是计算逻辑的高级视图。 为了执行一个流处理程序,Flink需要将逻辑流图转换为物理数据流图(也叫执行图),详细说明程序的执行方式。 原理介绍 Flink执行executor会自动根据程序代码生成DAG数据流图 Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph ->

    1.5K40发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(十八):Flink Window操作

    ---- Flink-Window操作 为什么需要Window 在流处理应用中,数据是连续不断的,有时我们需要做一些聚合类的处理,例如:在过去的1分钟内有多少用户点击了我们的网页。 --用的较多 2.基于时间的滑动窗口sliding-time-window--用的较多 3.基于数量的滚动窗口tumbling-count-window--用的较少 4.基于数量的滑动窗口sliding-count-window --用的较少 注意:Flink还支持一个特殊的窗口:Session会话窗口,需要设置一个会话超时时间,如30s,则表示30s内没有数据到来,则触发上个窗口的计算 Window的API window和windowAll window 中, Flink提供了很多各种场景用的WindowAssigner: 如果需要自己定制数据分发策略,则可以实现一个 class,继承自 WindowAssigner。 ​​​​​​​ evictor--了解 evictor 主要用于做一些数据的自定义操作,可以在执行用户代码之前,也可以在执行 用户代码之后,更详细的描述可以参考org.apache.flink.streaming.api.windowing.evictors.Evictor

    1.1K10发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(六):Flink On Yarn模式

    在实际开发中,使用Flink时,更多的使用方式是Flink On Yarn模式,原因如下: -1.Yarn的资源可以按需使用,提高集群的资源利用率 -2.Yarn的任务有优先级,根据优先级运行作业 -3 1.Client上传jar包和配置文件到HDFS集群上 2.Client向Yarn ResourceManager提交任务并申请资源 3.ResourceManager分配Container资源并启动ApplicationMaster export/server/hadoop/etc/hadoop/yarn-site.xml scp -r /export/server/hadoop/etc/hadoop/yarn-site.xml node3: /export/server/hadoop/etc/hadoop/yarn-site.xml 3.重启yarn /export/server/hadoop/sbin/stop-yarn.sh /export 的地址 # -yjm 1024 指定jobmanager的内存信息 # -ytm 1024 指定taskmanager的内存信息 2.查看UI界面 http://node1:8088/cluster 3.

    1.8K20发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(四十):​​​​​​​Flink模拟双十一实时屏统计

    目录 Flink模拟双十一实时屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实现代码 (基于上面参考代码重新写一套) 实现效果 ---- Flink模拟双十一实时屏统计 需求 在大数据的实时处理中,实时的屏展示已经成了一个很重要的展示项,比如最有名的双十一大屏实时销售总价展示。 今天我们就做一个最简单的模拟电商统计屏的小例子, 需求如下: 1.实时计算出当天零点截止到当前时间的销售总额 2.计算出各个分类的销售top3 3.每秒钟更新一次统计结果 数据 首先我们通过自定义source Exception { Double totalAmount = 0d;//用来记录销售总额 //用大小顶堆来计算TopN //用大顶堆(数据在堆顶 //2--堆顶 //3 //4--堆底 //5进来,比堆顶,堆顶元素移除,5下沉 //3

    1.5K31发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(二):Flink用武之地

    ---- Flink用武之地 http://www.liaojiayi.com/flink-IoT/ https://flink.apache.org/zh/usecases.html 从很多公司的应用案例发现 ,其实Flink主要用在如下三场景: ​​​​​​​Event-driven Applications【事件驱动】 事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算 比如Flink应用凌晨从Recorded Events中读取昨天的数据,然后做周期查询运算,最后将数据写入Database或者HDFS,或者直接将数据生成报表供公司上层领导决策使用。 Periodic ETL:比如每天凌晨周期性的启动一个Flink ETL Job,读取传统数据库中的数据,然后做ETL,最后写入数据库和文件系统。 Data Pipeline:比如启动一个Flink 实时应用,数据源(比如数据库、Kafka)中的数据不断的通过Flink Data Pipeline流入或者追加到数据仓库(数据库或者文件系统),或者Kafka

    94150发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(二十五):Flink 状态管理

    为什么 Flink 知道之前已经处理过一次 hello world,这就是 state 发挥作用了,这里是被称为 keyed state 存储了之前需要统计的数据,所以 Flink 知道 hello 和 从图上可以看出,生产者已经写入 16 条消息,Offset 停留在 15 ;有 3 个消费者,有的消费快,而有的消费慢。消费快的已经消费了 13 条数据,消费者慢的才消费了 7、8 条数据。 consumer 0 落后了 5 条,consumer 1 落后了 8 条,consumer 2 落后了 3 条,根据 Flink 的原理,此处需进行 Map 操作。 未触发的窗口数据也是一种状态。 3.机器学习/深度学习:如训练的模型以及当前模型的参数也是一种状态,机器学习可能每次都用有一个数据集,需要在数据集上进行学习,对模型进行一个反馈。 Operator State 可以用于所有算子,但一般常用于 Source 存储State的数据结构/API介绍 前面说过有状态计算其实就是需要考虑历史数据 而历史数据需要搞个地方存储起来 Flink为了方便不同分类的

    91430发布于 2021-10-09
  • 来自专栏Lansonli技术博客

    2021年数据Flink(一):乘风破浪的Flink-Flink概述

    早期, Flink 是做 Batch 计算的,但是在 2014 年, StratoSphere 里面的核心成员孵化出 Flink,同年将 Flink 捐赠 Apache,并在后来成为 Apache 的顶级大数据项目 ,同时 Flink 计算的主流方向被定位为 Streaming, 即用流式计算来做所有大数据的计算,这就是 Flink 技术诞生的背景。 2014 年 Flink 作为主攻流计算的大数据引擎开始在开源大数据行业内崭露头角。 /dQCFKyQDXYm3F8rB0/article/details/86117374 随着人工智能时代的降临,数据量的爆发,在典型的大数据的业务场景下数据业务最通用的做 法是:选用批处理的技术处理全量数据 这样在各种不同的场景下,不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持,这就是阿里选择 Flink 的背景和初衷。

    1.8K30发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(三十):Flink ​​​​​​​Table API & SQL 介绍

    /dev/table/ Flink的Table模块包括 Table API 和 SQL: Table API 是一种类SQL的API,通过Table API,用户可以像操作表一样操作数据,非常直观和方便 SQL作为一种声明式语言,有着标准的语法和规范,用户可以不用关心底层实现即可进行数据的处理,非常易于上手 Flink Table API 和 SQL 的实现上有80%左右的代码是公用的。 高性能:可优化,内置多种查询优化器,这些查询优化器可为 SQL 翻译出最优执行计划; 3. 简单易学:易于理解,不同行业和领域的人都懂,学习成本较低; 4. 标准稳定:语义遵循SQL标准,非常稳定,在数据库 30 多年的历史中,SQL 本身变化较少; 5. 在 Flink 1.9 中,Table 模块迎来了核心架构的升级,引入了阿里巴巴Blink团队贡献的诸多功能 在Flink 1.9 之前,Flink API 层 一直分为DataStream API

    94920发布于 2021-10-09
  • 来自专栏Lansonli技术博客

    2021年数据Flink(二十七):Flink 容错机制 Checkpoint

    Java的堆内存中/TaskManage节点的内存中 State可以被记录,在失败的情况下数据还可以恢复 Checkpoint: 某一时刻,Flink中所有的Operator的当前State的全局快照, 一般存在磁盘上 表示了一个Flink Job在一个特定时刻的一份全局状态快照,即包含了所有Operator的状态 可以理解为Checkpoint是把State数据定时持久化存储了 比如KafkaConsumer 算子中维护的Offset状态,当任务重新恢复的时候可以从Checkpoint中获取 注意: Flink中的Checkpoint底层使用了Chandy-Lamport algorithm分布式快照算法可以保证数据的在分布式环境下的一致性 3.当 task 完成 state 备份后,会将备份数据的地址(state handle)通知给 Checkpoint coordinator。 因为如果某个算子在节点A上失败,在节点B上恢复,使用本地文件时,在B上无法读取节点 A上的数据,导致状态恢复失败。

    1.3K30发布于 2021-10-09
  • 来自专栏Lansonli技术博客

    2021年数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    ---- Flink安装部署 Flink支持多种安装模式 - Local—本地单机模式,学习测试时使用 - Standalone—独立集群模式,Flink自带集群,开发测试环境使用 - StandaloneHA _2.12.tgz到node1的指定目录 3.解压 tar -zxvf flink-1.12.0-bin-scala_2.12.tgz  4.如果出现权限问题,需要修改权限 chown -R root: root /export/server/flink-1.12.0 5.改名或创建软链接 mv flink-1.12.0 flink ln -s /export/server/flink-1.12.0  me hello 2.启动Flink本地“集群” /export/server/flink/bin/start-cluster.sh 3.使用jps可以查看到下面两个进程 TaskManagerRunner /flink/bin/flink run /export/server/flink/examples/batch/WordCount.jar --input /root/words.txt --output

    1.1K20发布于 2021-10-11
  • 来自专栏Lansonli技术博客

    2021年数据Flink(二十九):Flink 容错机制 Savepoint

    Savepoint VS Checkpoint ​​​​​​​Savepoint演示 # 启动yarn session /export/server/flink/bin/yarn-session.sh -n 2 -tm 800 -s 1 -d # 运行job-会自动执行Checkpoint /export/server/flink/bin/flink run --class cn.itcast.checkpoint.CheckpointDemo01 /root/ckp.jar # 手动创建savepoint--相当于手动做了一次Checkpoint /export/server/flink/bin/flink savepoint 702b872ef80f08854c946a544f2ee1a5  hdfs://node1:8020/flink-checkpoint/savepoint/ # 停止job /export/server/flink/bin/flink cancel 702b872ef80f08854c946a544f2ee1a5 # 重新启动job,手动加载savepoint数据 /export/server/flink/bin/flink run -s hdfs://node1:8020/flink-checkpoint

    73320发布于 2021-10-09
  • 来自专栏腾讯云大数据

    Flink 实践教程:入门(3):读取 MySQL 数据

    作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时 本文将为您详细介绍如何取 MySQL 数据,经过流计算 Oceanus 实时计算引擎分析,输出数据到日志(Logger Sink)当中。 id INT, name VARCHAR ) WITH (    'connector' = 'logger',    'print-identifier' = 'DebugData' ); 3. 查看 Flink UI  Taskmanger 日志,观察全量数据是否正常打印到日志。 5. 验证 MySQL-CDC 特性 在 MySQL 中新增一条数据,然后在 Flink UI Taskmanger 日志中观察结果,观察新增的数据是否正常打印到日志。

    1.6K30发布于 2021-11-01
  • 来自专栏Lansonli技术博客

    2021年数据Flink(七):​​​​​​​参数总结

    参数总结 [root@node1 bin]# /export/server/flink/bin/flink --help . /flink <ACTION> [OPTIONS] [ARGUMENTS] The following actions are available: Action "run" compiles                                           UDF worker (e.g.: --pyExecutable                                           /usr/local/bin/python3) /flink-                                      docs-stable/ops/config.html      -m,--jobmanager <arg> -j,--jarfile <jarfile>   Flink program JAR file.   

    1K60发布于 2021-10-11
  • 来自专栏小道

    Flink学习笔记(3) -- Flink API解析

    1、Flink DataStreamAPI Ⅰ、DataStream API 之 Data Sources部分详解   source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource flink提供了大量的已经实现好的source方法,你也可以自定义source   通过实现sourceFunction接口来自定义无并行度的source,或者你也可以通过实现ParallelSourceFunction 2、Flink DataSetAPI Ⅰ、DataSet API之Data Sources部分详解 ? Ⅱ、DataSet API之Transformations部分详解 ? ? ? 3Flink Table API & SQL   Flink针对流处理和批处理提供了相关的API-Table API和SQL。    https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/table/ ? 4、Flink 支持的DataType和序列化 ? ?

    47410发布于 2021-04-13
  • 来自专栏Lansonli技术博客

    2021年数据Flink(四十一):​​​​​​​Flink实现订单自动好评

    数据 自定义source模拟生成一些订单数据. 在这里,我们生了一个最简单的二元组Tuple3,包含用户id,订单id和订单完成时间三个字段. /**  * 自定义source实时产生订单数据Tuple3<用户id,订单id, 订单生成时间>  */ ; import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.configuration.Configuration; , Collector<Object> out) throws Exception {             //Tuple3<用户id,订单id, 订单生成时间> value里面是当前进来的数据里面有订单生成时间 ; import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.configuration.Configuration;

    92430发布于 2021-10-11
  • 来自专栏腾讯云流计算 Oceanus

    Flink 实践教程:入门3-读取 MySQL 数据

    Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台 本文将为您详细介绍如何取 MySQL 数据,经过流计算 Oceanus 实时计算引擎分析,输出数据到日志(Logger Sink)当中。 id INT, name VARCHAR ) WITH ( 'connector' = 'logger', 'print-identifier' = 'DebugData' ); 3. 查看Flink UI Taskmanger 日志,观察全量数据是否正常打印到日志。 5. 验证 MySQL-CDC 特性 在 MySQL 中新增一条数据,然后在 Flink UI Taskmanger 日志中观察结果,观察新增的数据是否正常打印到日志。

    2.4K70编辑于 2021-12-08
  • 来自专栏大数据成长之路

    快速入门Flink (3) —— Flink的运行架构

    它们也可能共享数据集和数据结构,因此这减少了每个 task 的负载。 ? 也就是说,假设一共有 3 个 TaskManager,每一个 TaskManager 中的分配 3 个 TaskSlot,也 就 是 每 个 TaskManager 可 以 接 收 3 个 task , 1.3 程序与数据Flink 程序的基础构建模块是流(streams) 与 转换(transformations)(需要注意 的是,Flink 的 DataSet API 所使用的 DataSets 1.4 并行数据Flink 程序的执行具有并行、分布式的特性。 下一篇博客,我们将正式上手Flink的实战代码,敬请期待|ू・ω・` ) 如果以上过程中出现了任何的纰漏错误,烦请大佬们指正? 受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?

    62920发布于 2021-01-27
  • 来自专栏Lansonli技术博客

    2021年数据Flink(四十二):​​​​​​​BroadcastState

    Broadcast State 是 Flink 1.5 引入的新特性。 下游的 task 接收这些配置、规则并保存为 BroadcastState, 将这些配置应用到另一个数据流的计算中 。 ()方法处理后输出结果数据记录的类型。 3) Broadcast State 中元素的顺序,在各Task 中可能不同。基于顺序的处理,需要注意。                 broadcastState.clear();                 //最后将最新的广播流数据放到state中(更新状态数据)                  Tuple2<String, Integer>>> broadcastState = ctx.getBroadcastState(descriptor); //清理广播数据后再重新广播新数据

    1K30发布于 2021-10-11
领券