首页 > 图书中心 >图书详情
Flink编程基础(Scala版)
作者:林子雨,陶继平
丛书名:面向新工科专业建设计算机系列教材
定价:69.80元
印次:1-4
ISBN:9787302583677
出版日期:2021.09.01
印刷日期:2023.08.18
本书以Scala作为开发Flink应用程序的编程语言,系统地介绍了Flink编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Flink的设计与运行原理、Flink环境搭建和使用方法、DataStream API、DataSet API、Table API&SQL、FlinkCEP。本书主要章节都安排了入门级的编程实践操作,以便读者更好地学习和掌握Flink编程方法。本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。 本书可作为高等院校大数据、计算机、软件工程等专业的进阶级“大数据”课程教材,用于指导Flink编程实践,也可供相关技术人员参考。
more >前言 大数据技术正处于快速发展之中,不断有新的技术涌现,Hadoop和Spark等技术成为其中的佼佼者。在Spark流行之前,Hadoop俨然已成为大数据技术的事实标准,在企业中得到了广泛的应用,但其本身还存在诸多缺陷,最主要的缺陷是MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用离线批处理的应用场景。Spark在设计上充分吸收和借鉴了MapReduce的精髓并加以改进,同时,采用了先进的DAG执行引擎,以支持循环数据流与内存计算,因此,在性能上比MapReduce有了大幅度的提升,迅速获得了学界和业界的广泛关注。作为大数据计算平台的后起之秀,Spark在2014年打破了Hadoop保持的基准排序纪录,此后逐渐发展成为大数据领域最热门的大数据计算平台之一。 但是,Spark的短板在于无法满足毫秒级别的企业实时数据分析需求。Spark的流计算组件Spark Streaming的核心思路是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业都可以使用Spark Core进行快速处理。但是,Spark Streaming在实现高吞吐和容错性的同时,却牺牲了低延迟和实时处理能力,最快只能满足秒级的实时计算需求,无法满足毫秒级的实时计算需求。由于Spark Streaming组件的延迟较高,最快响应时间都要在秒级,无法满足一些需要更快响应时间的企业应用的需求,所以,Spark社区又推出了Structured Streaming。Structured Streaming是一种基于Spark SQL引擎构建的、可扩展且容错的流处理引擎。Structured Streaming包括微批处理和持续处理两种处理模型。采用微批处理时,最快响应时间需要100ms,无法支持毫秒级别响应。采用持续处理模型时,可以支持毫秒级别响应,但是,只能做到“至少一次”一致性,无法做到“精确一次”一致性。 因此,市场需要一款能够实现毫秒级别响应并且支持“精确一次”一致性的、高吞吐、高性能的流计算框架,而Flink是当前唯一能够满足上述要求的产品,它正在成为大数据领域流处理的标配组件。 笔者带领的厦门大学计算机科学系数据库实验室团队,是国内高校较早从事大数据教学的团队之一。在写本书之前,我们已经做了大量前期的相关工作。从2013年至今,已经出版了8本大数据教材,内容涵盖导论课、入门课、进阶课和实训课,包括《大数据导论(通识课版)》(用于开设全校公共选修课)、《大数据导论》(用于开设大数据专业导论课)、《大数据技术原理与应用》(用于开设入门级大数据专业课)、《大数据基础编程、实验和案例教程》(用于开设入门级大数据专业课)、《Spark编程基础(Scala版)》(用于开设进阶级大数据专业课)、《Spark编程基础(Python版)》(用于开设进阶级大数据专业课)、《大数据实训案例之电影推荐系统(Scala版)》(用于开设大数据实训课程)和《大数据实训案例之电信用户行为分析(Scala版)》(用于开设大数据实训课程)。这些教材已经在国内高校得到了广泛使用,其中,《大数据技术原理与应用》教材的销量已经突破了15万册,得到了广大一线教师的高度认可和好评。学习Flink需要有一定的大数据基础知识,因此,建议读者在学习本书之前,先学习《大数据技术原理与应用》。为了帮助读者更好地学习本书,我们为教材配套建设了“高校大数据课程公共服务平台”,截至目前,平台累计访问量已经突破1000万,在全国高校形成了广泛的影响力,并荣获“2018年厦门大学教学成果特等奖”和“2018年福建省教学成果二等奖”。为了帮助高校教师更好地教授大数据课程,我们每年都举办大数据师资培训交流班,目前已经累计为全国400多所高校培养了600余位大数据教师。上述所有工作,使笔者对于撰写一本优秀的Flink教材有了更深的认识和更强的信心。 本书共8章,详细介绍了Flink的环境搭建和基础编程方法。第1章介绍大数据技术,帮助读者形成对大数据技术的总体性认识以及Flink在其中所扮演的角色;第2章介绍Scala语言基础知识,为学习基于Scala语言的Flink编程奠定基础;第3章介绍Flink的设计与运行原理;第4章介绍Flink环境搭建和使用方法,为开展Flink编程实践铺平道路;第5章介绍DataStream API,包括DataStream编程模型、窗口的划分、时间概念、窗口计算、水位线、状态编程;第6章介绍DataSet API,包括DataSet编程模型、数据源、数据转换、数据输出、迭代计算和广播变量;第7章介绍Table API&SQL,包括编程模型、Flink Table API、Flink SQL和自定义函数;第8章介绍FlinkCEP,包括Pattern API和模式的检测等。 本书面向高校大数据、计算机、软件工程等专业的学生,可以作为专业必修课或选修课教材。本书由林子雨和陶继平执笔,其中,林子雨负责书稿规划、统稿、校对和在线资源创作,并撰写第1、3、4、5、6、7、8章的内容,陶继平负责撰写第2章的内容。 在本书的撰写过程中,厦门大学计算机科学系硕士研究生郑宛玉、陈杰祥、陈绍纬、周伟敬、阮敏朝、刘官山和黄连福等做了大量辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。同时,感谢夏小云老师在书稿校对过程中的辛勤付出。 本书官方网站免费提供了全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,Flink作为大数据进阶课程,在学习过程中会涉及大量相关的大数据基础知识以及各种大数据软件的安装和使用方法,因此,推荐读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台,来获得必要的辅助学习内容。 在本书的撰写过程中,参考了大量网络资料和相关书籍,对Flink技术进行了系统梳理,有选择性地把一些重要知识纳入本书。由于笔者能力有限,本书难免存在不足之处,望广大读者不吝赐教。 林子雨厦门大学计算机科学系数据库实验室2021年6月
more >