Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 大数据云计算 >

Apache Flink:详细入门 PDF 下载


分享到:
时间:2020-05-20 17:59来源:http://www.java1234.com 作者:小锋  侵权举报
Apache Flink:详细入门 PDF 下载
失效链接处理
Apache Flink:详细入门 PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

Apache Flink:详细入门
发布时间:2018-04-09 来源:网络 上传者:用户
关键字: 入门 apache 详细 Flink
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的 SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独立的开源框架来实现其中每一种处理方案。例如,实现批处理的开源方案有MapReduce、Tez、Crunch、 Spark,实现流处理的开源方案有Samza、Storm。
 
Flink在实现流处理和批处理时,与传统的一些方案完全不同,它从另一个视角看待流处理和批处理,将二者统一起来:Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。基于同一个Flink运行时(Flink Runtime),分别提供了流处理和批处理API,而这两种API也是实现上层面向流处理、批处理类型应用框架的基础。
 
 
基本特性
关于Flink所支持的特性,我这里只是通过分类的方式简单做一下梳理,涉及到具体的一些概念及其原理会在后面的部分做详细说明。
流处理特性
支持高吞吐、低延迟、高性能的流处理 
支持带有事件时间的窗口(Window)操作 
支持有状态计算的Exactly-once语义 
支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作 
支持具有Backpressure功能的持续流模型 
支持基于轻量级分布式快照(Snapshot)实现的容错 
一个运行时同时支持Batch on Streaming处理和Streaming处理 
Flink在JVM内部实现了自己的内存管理 
支持迭代计算 
支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存 
API支持
对Streaming数据类应用,提供DataStream API 
对批处理类应用,提供DataSet API(支持Java/Scala) 
Libraries支持
支持机器学习(FlinkML) 
支持图分析(Gelly) 
支持关系数据处理(Table) 
支持复杂事件处理(CEP) 
整合支持
支持Flink on YARN 
支持HDFS 
支持来自Kafka的输入数据 
支持Apache HBase 
支持Hadoop程序 
支持Tachyon 
支持ElasticSearch 
支持RabbitMQ 
支持Apache Storm 
支持S3 
支持XtreemFS 
基本概念
Stream &; Transformation &; Operator
 
用户实现的Flink程序是由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而 Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。当一个Flink程序被执行的 时候,它会被映射为Streaming Dataflow。一个Streaming Dataflow是由一组Stream和Transformation Operator组成,它类似于一个DAG图,在启动的时候从一个或多个Source Operator开始,结束于一个或多个Sink Operator。
 
下面是一个由Flink程序映射为Streaming Dataflow的示意图,如下所示:
 
 
上图中,FlinkKafkaConsumer是一个Source Operator,map、keyBy、timeWindow、apply是Transformation Operator,RollingSink是一个Sink Operator。
Parallel Dataflow
在Flink中,程序天生是并行和分布式的:一个Stream可以被分成多个Stream分区(Stream Partitions),一个Operator可以被分成多个Operator Subtask,每一个Operator Subtask是在不同的线程中独立执行的。一个Operator的并行度,等于Operator Subtask的个数,一个Stream的并行度总是等于生成它的Operator的并行度。
 
有关Parallel Dataflow的实例,如下图所示:
 
 
上图Streaming Dataflow的并行视图中,展现了在两个Operator之间的Stream的两种模式:

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐