本书以项目实践作为主线,结合必需的理论知识,以任务的形式设计内容,每个任务都包含任务描述及任务实施的步骤,读者按照实施步骤进行操作就可以完成相应的学习任务,从而不断提升项目实践能力。本书主要内容涉及流式数据的基础知识、Flink的简介及发展历史、Flink的系统架构及Flink API介绍、Flink的集群部署模式、Flink流式API的基本应用、Flink时间和窗口API的应用、Flink高级应用、Flink Table和SQL的应用、Flink CEP的应用、Kafka集群的安装和常用操作,以及Flink、Flume和Kafka的集成方式。
本书适合需要使用Flink进行大数据处理的程序员、架构师和产品经理作为技术参考手册和培训资料,也可作为高校本科生和研究生的教材。
王璐烽,教授,世界技能大赛中国赛区裁判员、重庆市高校黄大年式教师团队负责人、重庆市高校中青年骨干教师、重庆市高校优秀思想政治工作者;撰写论文20余篇,其中SCI/EI收录或核心期刊10余篇;主编国家十三五规划教材1本,其余4本;主持重庆市重大教改课题1项,重点1项,其余5项;主持重庆市重大科技项目1项;主持重庆市精品在线课程1门;获得全国职业院校信息化教学大赛一等奖,重庆市科技进步三等奖,中国通信工业协会教学成果特等奖;指导学生参加全国职业院校技能大赛获一等奖、二等奖各1次;参与专业标准、1 X职业技能等级标准、重庆市人社局新职业(人工智能训练师)培训标准、考核标准等研制工作。
刘均,高级实验师、高级技师、课程思政教学名师、全国职业院校技能大赛优秀指导教师、重庆市黄大年教学团队成员、重庆市高职院校1 X证书学习成果专业认证委员会专家、云计算1 X中级讲师、网络工程师、国家职业技能鉴定中心考评员、重庆市政府采购评审专家;主要研究方向为计算机实验实训教学、云计算运维技术;主要从事大数据、云计算自动运维方面教学工作;参与省部级科研项目《基于运行大数据的工业机器人预测性维护关键技术研究》等项目3项;国家级在线精品课程《云计算之软件定义网络》主要成员,主要讲授《云存储技术》《Python程序设计》《云计算系统框架》等课程。
项目1 Flink开发环境搭建 1
任务 搭建Flink开发环境 2
【任务描述】 2
【知识链接】 2
【任务实施】 8
项目小结 18
思考与练习 18
项目2 Flink集群搭建 20
任务1 Flink集群搭建 21
【任务描述】 21
【知识链接】 21
【任务实施】 23
任务2 基于Flink实现单词统计 26
【任务描述】 26
【任务实施】 26
任务3 Flink项目打包部署 34
【任务描述】 34
【任务实施】 34
项目小结 37
思考与练习 37
项目3 Flink流式API应用 38
任务1 创建Flink程序执行环境 39
【任务描述】 39
【知识链接】 39
【任务实施】 40
任务2 创建Flink数据源 40
【任务描述】 40
【知识链接】 41
【任务实施】 41
任务3 Flink转换算子的应用 44
【任务描述】 44
【知识链接】 45
【任务实施】 45
任务4 数据输出 55
【任务描述】 55
【知识链接】 56
【任务实施】 56
项目小结 63
项目拓展 63
思考与练习 64
项目4 Flink时间和窗口API应用 65
任务1 Flink时间语义和水位线 66
【任务描述】 66
【知识链接】 66
【任务实施】 68
任务2 Flink窗口操作 73
【任务描述】 73
【知识链接】 73
【任务实施】 75
任务3 Flink迟到数据处理 80
【任务描述】 80
【知识链接】 80
【任务实施】 81
项目小结 84
思考与练习 85
项目5 Flink高级应用 87
任务1 Flink多数据流处理 88
【任务描述】 88
【知识链接】 88
【任务实施】 88
任务2 Flink状态编程 95
【任务描述】 95
【知识链接】 95
【任务实施】 98
任务3 Flink容错机制 101
【任务描述】 101
【知识链接】 101
【任务实施】 103
项目小结 104
思考与练习 105
项目6 Flink Table和SQL应用 106
任务1 快速入门 107
【任务描述】 107
【知识链接】 107
【任务实施】 107
任务2 Flink Table和SQL基本API应用 109
【任务描述】 109
【知识链接】 109
【任务实施】 113
任务3 Flink SQL函数的应用 114
【任务描述】 114
【知识链接】 114
【任务实施】 115
任务4 Flink SQL高级应用 119
【任务描述】 119
【知识链接】 119
【任务实施】 120
项目小结 122
思考与练习 123
项目7 Flink CEP应用 124
任务1 Flink CEP入门 125
【任务描述】 125
【知识链接】 125
【任务实施】 127
任务2 Flink CEP综合应用 131
【任务描述】 131
【知识链接】 131
【任务实施】 136
项目小结 143
思考与练习 143
项目8 Flink集成Kafka应用 145
任务1 Kafka集群安装及常用操作 146
【任务描述】 146
【知识链接】 146
【任务实施】 148
任务2 Flink和Kafka集成 151
【任务描述】 151
【知识链接】 151
【任务实施】 152
任务3 综合应用案例 155
【任务描述】 155
【任务实施】 156
项目小结 161
思考与练习 162
项目9 网站日志实时分析系统 164
任务1 网站日志收集 165
【任务描述】 165
【知识链接】 165
【任务实施】 168
任务2 Flume与Kafka集成 169
【任务描述】 169
【知识链接】 169
【任务实施】 170
任务3 日志分析实现 172
【任务描述】 172
【任务实施】 172
项目小结 180
项目拓展 181
思考与练习 181
参考文献 183