前言
Apache Flink 是德国柏林工业大学的几个博士生和研究生从学校开始做起来的项目,之前叫做 Stratosphere。他们在2014 年开源了这个项目,起名为 Flink。
Apache Flink 已经被业界公认是最好的流计算引擎。然而 Flink 其实并不是一个仅仅局限于做流处理的引擎。Apache Flink 的定位是一套兼具流、批、机器学习等多种计算功能的大数据引擎。
在最近的一段时间,Flink 在批处理以及机器学习等诸多大数据场景都有长足的突破。一方面Flink 的批计算在经过阿里的优化后有了数量级的提升。另一方面,Flink 社区在 tableAPI,Python,以及 ML 等诸多领域都在逐步发力,持续提升用户做 Data science 和 AI 计算的体验。此外,Flink也在逐步提升和其他开源软件融合的体验,包括 Hive,还有 Notebook(Zeppelin, Jupyter)等等。
阿里为什么选择Flink
随着人工智能时代的降临,数据量的爆发,在典型的大数据的业务场景下数据业务最通用的做法是:选用批处理的技术处理全量数据,采用流式计算处理实时增量数据。在绝大多数的业务场景之下,用户的业务逻辑在批处理和流处理之中往往是相同的。
但是,用户用于批处理和流处理的两套计算引擎是不同的。因此,用户通常需要写两套代码。毫无疑问,这带来了一些额外的负担和成本。阿里巴巴的商品数据处理就经常需要面对增量和全量两套不同的业务流程问题,所以阿里就在想,我们能不能有一套统一的大数据引擎技术,用户只需要根据自己的业务逻辑开发一套代码。
这样在各种不同的场景下,不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持,这就是阿里选择 Flink 的背景和初衷。
目前开源大数据计算引擎有很多选择,流计算如 Storm、Samza、Flink、Kafka Stream 等,批处理如 Spark、Hive、Pig、Flink 等。而同时支持流处理和批处理的计算引擎,只有两种选择:一个是 Apache Spark,一个是 Apache Flink。
从技术,生态等各方面的综合考虑,首先,Spark 的技术理念是基于批来模拟流的计算。而 Flink则完全相反,它采用的是基于流计算来模拟批计算。
从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而 Flink基于流来模拟批,在技术上有更好的扩展性。从长远来看,阿里决定用 Flink 做一个统一的、通用的大数据引擎作为未来的选型。
因为文章篇幅限制,小编在这里就不做过多的介绍了,需要这份Flink实践手册的朋友可以转发关注小编,私信小编“学习”来得到获取方式
Flink从入门到实践学习路线展示
第一章:初识Flink
1.1课程目录
1.2Flink概述
1.3flink layered api
1.4Flink运行多样化
1.5业界流处理框架对比
1.6flink use cases
1.7flink发展趋势
1.8如何以正确的姿势来学习flink
第二章:快速上手开发第一个flink程序
2.1开发环境准备之jdk安装
2.2开发环境准备之maven安装
2.3开发环境准备之idea安装
2.4flink批处理应用开发之需求描述
2.5开发过程中依赖的注意事项
第三章:编程模型及核心概念
3.1核心概念概述
3.2dataset和datastream
3.3flink编程模型
3.4延迟执行
3.5flink支持的数据类型
第四章:DataSet API编程
4.1dataset api开发概述
4.2flink综合java和scala开发的项目构建creenflow
4.3data source宏观概述
4.4从集合创建dataset之scala实现
4.5基于flink的分布式缓存功能的java实现
第五章:DataStream API编程
5.1datastream api编程概述
5.2从socket创建datastream之java实现
5.3从socket创建datastream之scala实现
5.4自定义sink之需求描述及表创建-
5.5datastream api开发小结
第六章:Flink Table API & SQL编程
6.1什么是flink关系型
6.2table api&sql概述
6.3使用scala完成table api&sql功能的开发
6.4使用java完成table api&sql功能的开发
6.5table api&sql其他功能介绍
第七章:Flink中的Time及Windows的使用
7.1processing time详解
7.2event time详解
7.3ingestion time详解-
7.4如何在flink中指定time的类型
7.5flink watermark概述
第八章:Flink Connectors
8.1connectors概述
8.2hdfs connector的使用
8.3kafka connector概述
8.4ootb环境的使用
8.5flink整合kafka的checkpoint常用参数设置梳理
第九章:Flink部署及作业提交
9.1flink部署准备及源码编译-
9.2单机模式部署及代码提交测试
9.3flink standalone模式部署及参数详解
9.4如何查找需要配置的flink参数及ui对应关系介绍
9.5flink scala shell的使用
第十章:Flink监控及调优
10.1historyserver概述及配置-
10.2historyserver的使用
10.3monitoring rest ap
10.4flink metric
10.5flink常用优化策略
第十一章:基于Flink的互联网直播平台日志分析项目实战
11.1项目功能需求描述
11.2mock数据之kafka生产者代码主流程开发
11.3使用flink消费kafka生产的数据
11.4自定义mysql数据源读
11.5完成两个流关联的数据清洗功能
Flink项目实践视频
Flink视频教程笔记
基于Flink流处理的动态实时电商实时分析系统视频
从上面可以很清晰的看到阿里巴巴为什么选择Flink以及IT从业20年大佬讲解Flink从入门到实践的文档与视频,小编都为大家准备好了,如果大家伙需要的话,可以转发此文关注小编,私信小编“资料”来得到获取方式吧!
网友评论