Flink
# Flink
嘻哈吼嘿呵
这个作者很懒,什么都没留下…
展开
-
Spark、Flink 、Big Data、Java实用文章
目录一、Spark二、Flink一、SparkApache Spark在海致大数据平台中的优化实践 Spark/Flink广播实现作业配置动态更新 Spark面对OOM问题的解决方法及优化总结 Spark 动态资源分配(Dynamic Resource Allocation) 解析 基于SparkStreaming+Kafka+HBase实时点击流案例 H...原创 2019-12-12 10:27:38 · 186 阅读 · 0 评论 -
九、Flink 的 Table API
https://blog.csdn.net/qq_33356083/article/details/101028977#_7https://www.jianshu.com/p/97eaade9fa08转载 2019-10-29 10:46:43 · 82 阅读 · 0 评论 -
Flink Dataset Api(八)容错
checkpoint介绍checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状态的一致性。Flink的checkpoint机制原理来自“Chandy-Lamport algorithm”算法。每个需要checkpoint的应用在启动时,Flink的JobMa...转载 2019-10-28 19:03:45 · 204 阅读 · 0 评论 -
Flink Dataset Api(七)分布式缓存
Flink提供了一个类似于Hadoop的分布式缓存,让并行运行实例的函数可以在本地访问。这个功能可以被使用来分享外部静态的数据,例如:机器学习的逻辑回归模型等!缓存的使用流程:使用ExecutionEnvironment实例对本地的或者远程的文件(例如:HDFS上的文件),为缓存文件指定一个名字注册该缓存文件!当程序执行时候,Flink会自动将复制文件或者目录到所有worker节点的本地文...转载 2019-10-24 15:02:05 · 130 阅读 · 0 评论 -
Flink Dataset Api(六)广播变量
Flink支持广播变量,就是将数据广播到具体的taskmanager上,数据存储在内存中,这样可以减缓大量的shuffle操作;比如在数据join阶段,不可避免的就是大量的shuffle操作,我们可以把其中一个dataSet广播出去,一直加载到taskManager的内存中,可以直接在内存中拿数据,避免了大量的shuffle,导致集群性能下降;注意:因为广播变量是要把dataset广播到内...转载 2019-10-24 13:50:49 · 213 阅读 · 0 评论 -
Flink Dataset Api(五)本地执行和集群执行
本地执行1:local环境LocalEnvironment是Flink程序本地执行的句柄。用它在本地JVM中运行程序 - 独立运行或嵌入其他程序中。本地环境通过该方法实例化ExecutionEnvironment.createLocalEnvironment()。默认情况下,它将使用尽可能多的本地线程执行,因为您的机器具有CPU核心(硬件上下文)。您也可以指定所需的并行性。本地环境可以...转载 2019-10-24 13:37:39 · 645 阅读 · 0 评论 -
Flink Dataset Api(四)迭代操作
一、bulkIteration迭代算法在很多数据分析领域会用到,比如机器学习或者图计算。为了从大数据中抽取有用信息,这个时候往往会需要在处理的过程中用到迭代计算。大数据处理框架很多,比如spark,mr。实际上这些实现迭代计算都是很困难的。Flink神奇之处就是它直接支持迭代计算。Flink实现迭代的思路也是很简单,就是实现一个step函数,然后将其嵌入到迭代算子中去。有两种迭代操作算子:...转载 2019-10-24 12:18:09 · 1147 阅读 · 0 评论 -
Flink DataSet API (三)Data Sinks
flink在批处理中常见的sink1.基于本地集合的sink(Collection-based-sink)2.基于文件的sink(File-based-sink)基于本地集合的sink(Collection-based-sink) import org.apache.flink.api.scala.extensions._ import org.apache.fl...转载 2019-10-24 10:48:29 · 227 阅读 · 0 评论 -
Flink DataSet API (二) Transformation
目录一、flatMap函数二、mapPartition函数四、filter函数五、reduce函数六、reduceGroup七、GroupReduceFunction和GroupCombineFunction(自定义函数)八、combineGroup九、Aggregate十、minBy和maxBy十一、distinct去重十二、join十三、c...转载 2019-10-23 21:25:46 · 236 阅读 · 0 评论 -
Flink DataSet API (一) Data Source
一、DataStream 和 DataSetFlink用DataStream 表示无界数据集,用DataSet表示有界数据集,前者用于流处理应用程序,后者用于批处理应用程序。从操作形式上看,DataStream 和 DataSet 与集合 Collection 有些相似,但两者有着本质的区别:(1)DataStream 和 DataSet 是不可变的数据集合,因此不可以想操作集合那样增加或...转载 2019-10-23 20:40:06 · 211 阅读 · 0 评论 -
Flink DataStream API(三)EventTime 与 Window
7.1 EventTime 的引入在 Flink 的 流 式 处 理中, 绝大 部 分 的 业务都 会 使 用 eventTime,一般只在eventTime 无法使用时,才会被迫使用 ProcessingTime 或者 IngestionTime。如果要使用 EventTime,那么需要引入 EventTime 的时间属性,引入方式如下所示:val env = StreamExecu...原创 2019-10-23 16:40:15 · 246 阅读 · 0 评论 -
Flink DataStream API (二) Time 与Window
一、Time在 Flink 的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time:是事件创建的时间。它通常由事件中的时间戳描述, 例如采集的日志数据中,每一条日志都会记录自己的生成时间, Flink 通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入 Flink 的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统...原创 2019-10-23 10:54:20 · 159 阅读 · 0 评论 -
Flink DataStream API(一)
目录一、基本介绍二、DataStream API三、数据源(Source)(1)基于集合的预定义Source(2)基于Socket的预定义Source(3)基于文件的预定义Source(4)自定义Source四、数据转换(Transformation)1、基础转换操作(1)Map转换(2)键值对操作(3)stream合并操作五、分区1、...原创 2019-10-19 21:18:04 · 495 阅读 · 0 评论 -
十二、Flink-Kafka-Connector
setStartFromGroupOffsets()【默认消费策略】默认读取上次保存的offset信息如果是应用第一次启动,读取不到上次的offset信息,则会根据这个参数auto.offset.reset的值来进行消费数据setStartFromEarliest()从最早的数据开始进行消费,忽略存储的offset信息setStartFromLatest()从最新的数据进行...原创 2019-09-19 13:29:39 · 364 阅读 · 0 评论 -
十一、时间戳和水印
实际问题(乱序)在介绍Watermark相关内容之前我们先抛出一个具体的问题,在实际的流式计算中数据到来的顺序对计算结果的正确性有至关重要的影响,比如:某数据源中的某些数据由于某种原因(如:网络原因,外部存储自身原因)会有5秒的延时,也就是在实际时间的第1秒产生的数据有可能在第5秒中产生的数据之后到来(比如到Window处理节点).选具体某个delay的元素来说,假设在一个5秒的Tumb...转载 2019-09-19 13:04:47 · 288 阅读 · 0 评论 -
十、Flink中的窗口
目录窗口类型窗口的实现方式1、Tumbling Time Window 翻滚时间窗口2、Sliding Time Window 滑动时间窗口3、Tumbling Count Window 翻滚计数窗口4、Session Window 会话窗口窗口类型 1. flink支持两种划分窗口的方式(time和count) 如果根据时间划分窗口,那么...转载 2019-09-17 21:03:38 · 329 阅读 · 0 评论 -
九、Flink中的Time
时间时间类型 Flink中的时间与现实世界中的时间是不一致的,在flink中被划分为事件时间,摄入时间,处理时间三种。 如果以EventTime为基准来定义时间窗口将形成EventTimeWindow,要求消息本身就应该携带EventTime 如果以IngesingtTime为基准来定义时间窗口将形成IngestingTimeWindow,以source的sys...转载 2019-09-17 20:28:11 · 175 阅读 · 0 评论 -
八、Flink Broadcast广播变量
广播变量简介在Flink中,同一个算子可能存在若干个不同的并行实例,计算过程可能不在同一个Slot中进行,不同算子之间更是如此,因此不同算子的计算数据之间不能像Java数组之间一样互相访问,而广播变量Broadcast便是解决这种情况的。我们可以把广播变量理解为是一个公共的共享变量,我们可以把一个dataset 数据集广播出去,然后不同的task在节点上都能够获取到,这个数据在每个节点上只...转载 2019-09-13 17:39:32 · 293 阅读 · 0 评论 -
七、Flink的分布式缓存
分布式缓存Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件,并把它放在taskmanager节点中,防止task重复拉取。此缓存的工作机制如下: 程序注册一个文件或者目录(本地或者远程文件系统,例如hdfs或者s3),通过ExecutionEnvironment注册缓存文件并为它起一个名称。 当程序执行,Flink自动将文件或者...转载 2019-09-13 17:17:29 · 200 阅读 · 0 评论 -
六、Flink 重启策略
目录概述固定间隔失败率无重启策略实际代码演示概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启 集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。 如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配...转载 2019-09-13 17:06:16 · 344 阅读 · 0 评论 -
五、Flink 集群部署
https://github.com/wangzhiwubigdata/God-Of-BigData/blob/master/Flink/Flink%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2.md转载 2019-09-13 17:00:26 · 85 阅读 · 0 评论 -
四、Flink DataStreamAPI
目录DataStream TransformationmapFlatMapFilterKeyByReduceFold聚合Window函数Partition 分区DataStream算子将一个或多个DataStream转换为新DataStream。程序可以将多个转换组合成复杂的数据流拓扑。 DataStreamAPI和DataSetAPI主要的区别在于Tr...转载 2019-09-13 16:59:27 · 148 阅读 · 0 评论 -
三、Flink DataSetAPI
目录编程结构DataSet APIDataSet SourcesDataSet TransformationDataSet Sink序列化器数据类型编程结构public class SocketTextStreamWordCount { public static void main(String[] args) throws Exception { ...转载 2019-09-13 16:49:52 · 119 阅读 · 0 评论 -
二、Flink从入门到放弃-本地环境搭建&构建第一个Flink应用
https://www.jianshu.com/p/88e175355d7e转载 2019-09-13 16:33:33 · 145 阅读 · 0 评论 -
一、Flink是什么
一句话概括Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。前身Apache Flink 的前身是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了Apache Software Foundation的顶级项目之一。特点现有的开源计算方案,会把流处理和批处理作为两种...转载 2019-09-13 16:27:14 · 256 阅读 · 0 评论