Flink学习(一)】的更多相关文章

Apache Flink学习笔记 简介 大数据的计算引擎分为4代 第一代:Hadoop承载的MapReduce.它将计算分为两个阶段,分别为Map和Reduce.对于上层应用来说,就要想办法去拆分算法,在上层应用实现多个Job串联,完成一个完整算法.例如:迭代计算 第二代:支持DAG框架的计算引擎,如Tez以及更上层的Oozie. 第三代:Spark为代表的计算引擎.特点是Job内部的DAG支持(不跨越Job),以及强调的实时计算. 第四代:Flink对流计算的支持,也可以支持Batch任务以及…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: 在学习和开发flink的过程中,经常需要准备数据集用来验证我们的程序,阿里云天池公开数据集中有一份淘宝用户行为数据集,稍作处理后即可用于flink学习: 下载 下载地址: https://tianchi.aliyun.com/dataset/dataDetail?spm=a2c4e.11153…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 新一代Flink计算引擎 (1) Flink概述 目前开源大数据计算引擎有很多的选择,比如流处理有Storm.Samza.Flink.Spark等,批处理有Spark.Hive.Pig.Flink等.既支持流处理又支持批处理的计算引擎只有Apache Flink和Apache Spark. 虽然Spar…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Flink运行时架构 1.1Flink架构 Flink 运行时架构主要包含几个部分:Client.JobManager(master节点)和TaskManger(slave节点). Client:Flink 作业在哪台机器上面提交,那么当前机器称之为Client.用户开发的Program 代码,它会构建…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. 创建Flink项目及依赖管理 1.1创建Flink项目 官网创建Flink项目有两种方式: https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/java_api_quickstart.html 方式一: mvn a…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. 继续侃Flink编程基本套路 1.1 DataSet and DataStream DataSet and DataStream表示Flink app中的分布式数据集.它们包含重复的.不可变数据集.DataSet有界数据集,用在Flink批处理.DataStream可以是无界,用在Flink流处理.它们…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1.执行计划Graph Flink 通过Stream API (Batch API同理)开发的应用,底层有四层执行计划,我们首先来看Flink的四层执行计划如下图所示. 通过Stream API开发的Flink应用,底层首先转换为StreamGraph,然后再转换为JobGraph,接着转换为Executio…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. DataStream Transformation 1.1 DataStream转换关系 上图标识了DataStream不同形态直接的转换关系,也可以看出DataStream主要包含以下几类: 1.keyby就是按照指定的key分组 2.window是一种特殊的分组(基于时间) 3.coGroup 4.…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Time三兄弟 1.1 DataStream支持的三种time DataStream有大量基于time的operator,windows操作只是其中一种. Flink支持三种time: 1.EventTime 2.IngestTime 3.ProcessingTime 1.2三个时间的比较 EventT…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Window CoGroup与Join 1.1回顾RDBMS各种join 假设有两个表A和B 1.CROSS JOIN(AB的笛卡尔积/交叉联接) 省略写法为join,由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Process Function 1.1分层API Flink提供三层API. 每个API在简洁性和表达之间提供不同的权衡,并针对不同的用例 1.SQL/Table API (dynamic tables) 2.DataStream API(streams, windows) 3.ProcessFunc…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Aysnc I/O 1.1Aysnc I/O是啥? Async I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入. 主要目的:是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题. 场景: 流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息.通常,…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. 各种Connector 1.1Connector是什么鬼 Connectors是数据进出Flink的一套接口和实现,可以实现Flink与各种存储.系统的连接 注意:数据进出Flink的方式不止Connectors,还有: 1.Async I/O(类Source能力):异步访问外部数据库 2.Querya…
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. Kafka-connector概述及FlinkKafkaConsumer(kafka source) 1.1回顾kafka 1.最初由Linkedin 开发的分布式消息中间件现已成为Apache顶级项目 2.面向大数据 3.基本概念: 1.Broker 2.Topic 3.Partition 4.Pro…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz split 1.DataStream → SplitStream 2.按照指定标准将指定的DataStream拆分成多个流用SplitStream来表示 select 1.SplitStream → DataStream 2.跟split搭配使用,从SplitStream中选择一个或多个流 案例: pu…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1.4 JobGraph -> ExecutionGraph 1.5 ExecutionGraph 从JobGraph转换ExecutionGraph的过程中,内部会出现如下的转换. 1.ExecutionJobVertex <- JobVertex:JobVertex转换为Executio…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 2.4字段表达式实例-Java 以下定义两个Java类: public static class WC { public ComplexNestedClass complex; private int count; public int getCount() { return count; } publ…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 2.4字段表达式实例-Java 以下定义两个Java类: public static class WC { public ComplexNestedClass complex; private int count; public int getCount() { return count; } publ…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 从上图可以看出Flink 中的Time大致分为以下三类: 1.Event Time:Event 真正产生的时间,我们称之为Event Time. 2.Ingestion Time:Event 事件被Source拿到,进入Flink处理引擎的时间,我们称之为Ingestion Time. 3.Window…
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz 1. 快速生成Flink项目 1.推荐开发工具 idea+maven+git 2.推荐开发语言 Java或者Scala https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/java_api_quickstart.h…
上面试了Processing Time,在这里准备看下Event Time,以及必须需要关注的,在ET场景下的Watermarks. EventTime & Watermark Event time programs must specify how to generate Event Time Watermarks, which is the mechanism that signals progress in event time. 以event time为准的程序,必须要指定waterma…
flink介绍: Apache Flink is an open source platform for distributed stream and batch data processing. Flink’s core is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data…
摘自Apache官网 一.State的基本概念 什么叫State?搜了一把叫做状态机制.可以用作以下用途.为了保证 at least once, exactly once,Flink引入了State和Checkpoint 某个task/operator某时刻的中间结果 快照(snapshot) 程序一旦crash,恢复用的 机器学习模型的参数 二.Flink中包含的State Keyed State和Opreator State 1.Keyed State基于KeyedStream的状态.这个状…
摘自Apache Flink官网 最早的streaming 架构是storm的lambda架构 分为三个layer batch layer serving layer speed layer 一.在streaming中Flink支持的通知时间 Flink官网写了个了解streaming和各种时间的博客 https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101#F2 1.Processing time:执行时候的机器系统时…
一.运行 SockWordCount例子 1.到官网上下载 flink-1.6.2-bin-hadoop27-scala_2.11.tgz 然后加压出来 2.cd flink-1.6.2 3.打开flink本地集群 ./bin/start-cluster.sh 可以到 localhost.8100上看是否启动 4.打开一个网络cat nc -l 9000 5.运行编译好的jar ./bin/flink run examples/streaming/SocketWindowWordCount.ja…
摘自Flink官网https://flink.apache.org/ 最近看到公司有Flink平台,正好做过storm和spark streaming上的业务,借着这个机会把flink也学了.正好比较下他们之间的优缺点. 一.流式处理平台 1.Storm Topology为处理拓扑图 组成: (1)Spout. 数据分发中心. (2)Bolt. 数据处理中心 数据单元为Tuple.在Bolt处理完的数据可以发射给下一个Bolt.此时接收到的为Tuple. 缺点: (1)消息传输保证为At lea…
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能. 现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为它们所提供的SLA(Service-Level-Aggreement)是完全不相同的:流处理一般需要支持低延迟.Exactly-once保证,而批处理需要支持高吞吐.高效处理. Flink从另一个视角看待流处理和批处理,将二者统一起来:Flink是完全支持流处理,也就是说作为…
第一节 初识 Flink 在数据激增的时代,催生出了一批计算框架.最早期比较流行的有MapReduce,然后有Spark,直到现在越来越多的公司采用Flink处理.Flink相对前两个框架真正做到了高吞吐,低延迟,高性能. 1. Flink 是什么? 1) Flink 的发展历史 在 2010 年至 2014 年间,由柏林工业大学.柏林洪堡大学和哈索普拉特纳研究所联合发起名为"Stratosphere:Information Management on the Cloud"研究项目,该…
一.什么是Flink? Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能. 二.Flink特点 1.现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟.Exactly-Once保证,而批处理一般要支持高吞吐.高效处理 2.Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的:而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的. 技术特点: 1.流处理特性 支…
目录 简单入门 Flink安装部署 Standalone模式 Yarn模式 Kubernetes部署 Flink运行架构 运行时四大组件 任务提交流程 任务调度原理 Flink流处理API 执行环境Environment 数据源Source 转换算子Transform 支持的数据类型 实现UDF - 更细粒度的控制流 Sink Flink Window API 窗口分类 窗口分配器(Window assigner) 窗口函数(Window function) Flink时间语义与Watermar…