购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

对于一家互联网公司来说,什么是最核心的资产呢?是产品、用户、运营,还是技术?

其实,在如今日臻成熟的互联网环境下,这些都已不再是最核心的竞争力了。以我们最熟悉的电商为例,平台产品的设计、网站搭建、技术选型、运营手段都已经有了一整套成熟的方案。我们甚至可以在GitHub上下载一套代码,就可以搭建起自己的电商网站。那么,对于一个电商企业,核心竞争力在哪里呢?

难道只有砸钱搞特价营销这一个大招了吗?

当然不是。其实,比用户更重要的资产是数据。

用户可能会快速流动,所有用户在网站上的行为都可以作为数据记录下来,收集起来进行统计分析。以往很多用户行为数据是不被重视的,而现在越来越多的公司发现,数据是一个巨大的宝藏。数据会“说话”,它可以告诉我们平台的状态、用户的组成、用户的习惯和喜好,把更深层的信息展现在我们面前,让公司的策略更加合理。

如今数据的价值被不断地发掘,大数据分析已经成为互联网公司的标配,而且很多公司已经不仅仅用来做平台统计,更是作为了精准营销、个性化服务的切入点。

大数据处理一般分为离线处理和实时处理两种方式,处理引擎在架构上会有本质的不同。如今大数据技术的应用场景对实时性的要求已经越来越高,而Flink作为新一代开源大数据流处理引擎,有着良好的实时性和容错性,在近些年引起了业内极大的兴趣和关注。由于在实时分析领域的优势,越来越多的公司开始将大数据实时项目向Flink迁移,其社区也在快速发展壮大。随着阿里内部版本Blink开源,且并入Flink 1.9版本,Flink对于离线批处理的支持也更加全面和强大,一跃成为如今最火爆的大数据处理框架。对于大数据处理,Flink毫无疑问是一门必修课。

在国内一众“大厂”的引领下,Flink的发展日新月异,每一个版本都会引入更多的新特性、甚至对底层架构进行了重大调整,截至本书成稿时,已经发布了1.13版本。遗憾的是,Flink官网资料主要是英文版,尽管内容翔实却显得庞杂无从下手,中文资料更是匮乏,已有的文章和书籍也大多是基于早期版本,无法跟上Flink的更新速度。我们希望通过本书的编写,弥补这一空白。

Flink官方提供了Java和Scala两种语言的完整API,本书选择了更加简洁的Scala语言进行代码实现,Flink版本选用目前使用比较广泛的Flink 1.13。

本书核心内容

全书共分12章,具体内容如下:

● 第1章:Flink简介,介绍了Flink的源起、设计理念、应用和重要特性。

● 第2~4章:Flink开发应用的初步介绍。第2章以一个经典的词频统计(Word Count)需求为例,初次编写Flink代码,介绍Flink程序的基本结构。第3章介绍Flink在实际生产环境中的运用,涉及集群部署和作业提交。第4章进行总结梳理,详细讲解Flink的运行时架构和作业提交流程,对其中的一些重要概念做了详尽阐释。

● 第5章:主要介绍基本DataStream API的用法。详细讲解用来构建完整Flink程序的常用算子,包括源算子、转换算子和输出算子,其中涉及大量API的调用,均配有代码的实现。

● 第6~8章:第5章的进一步深入和拓展,主要介绍DataStream API的高级用法。其中,第6章是Flink流处理中的特色内容,引入时间语义和水位线的概念,并详细介绍了Flink中强大而灵活的窗口操作,这些是Flink能够正确处理乱序数据的基础。第7章介绍处理函数,这是Flink的底层API,可以对复杂需求自定义处理逻辑。第8章介绍多流转换操作,主要涉及分流和合流,在很多实际项目中有着广泛应用。

● 第9章:介绍状态编程,这是Flink中非常重要的内容,详细介绍Flink中状态管理机制和托管状态的具体用法,给出大量的代码实现,并引出检查点和状态后端的概念。

● 第10章:在第9章的基础上,深入讲解Flink的容错机制,包括检查点的原理和算法、状态一致性的概念,以及Flink如何保证端到端的精确一次一致性。

● 第11~12章:分别介绍Flink SQL和CEP。这是更高层级的API,调用更加方便,在实际项目中应用非常广泛。

读者可以关注“尚硅谷教育”公众号(微信号:atguigu),在聊天窗口发送关键字“Flink_Scala”,免费获取本书配套视频教程。

阅读本书需要熟悉Scala语言,第11章的学习还需要熟悉SQL查询语言,如果不具备相关的基础知识,可以在“尚硅谷教育”公众号聊天窗口发送关键字“大数据”,免费获取尚硅谷大数据全套视频教程及学习路线图,内有大数据核心基础Scala、Linux等众多技术视频和配套教辅资料。

感谢电子工业出版社的李冰编辑,是您的精心指导让本书得以付梓面世。也感谢所有为本书内容编写提供技术支持的老师们所付出的努力。

关于我们

尚硅谷是一家专业的IT教育培训机构,现拥有北京、深圳、上海、武汉、西安五处分校,开设有JavaEE、大数据、HTML5前端、UI/UE设计等多门学科,累计发布的视频教程3000多小时,广受赞誉。通过面授课程、视频分享、在线学习、直播课堂、图书出版等多种方式,满足了全国编程爱好者对多样化学习场景的需求。

尚硅谷一直坚持“技术为王,课比天大”的发展理念,设有独立的研究院,与多家互联网大厂的研发团队保持技术交流,保障教学内容始终基于研发一线,坚持聘用名校名企的技术专家,从源码层面进行技术讲解。

希望通过我们的努力,帮助到更多需要帮助的人,让天下没有难学的技术,为中国的软件人才培养尽一点绵薄之力。

尚硅谷教育 nuAFq8WO1hwrjNHVgapH5GUTsg9gC8X8DuSAJXTZNFFVM3tPCDmpSG1qG82YU+0N

点击中间区域
呼出菜单
上一章
目录
下一章
×