Flink实战派
全新正版 极速发货
¥
61.04
5.6折
¥
109
全新
库存8件
作者龙中华
出版社电子工业出版社
ISBN9787121408526
出版时间2021-04
装帧平装
开本16开
定价109元
货号1202325627
上书时间2024-06-02
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
目录
入门篇
第1章 进入大数据和人工智能世界2
1.1 认识大数据和人工智能2
1.2 认识Flink4
1.2.1 Flink是什么4
1.2.2 Flink的发展历程4
1.2.3 Flink的应用场景6
1.3 认识Alink6
1.4 如何使用本书的源码6
-
第2章 【实例1】使用Flink的4种API处理无界数据流和有界数据流8
2.1 创建Flink应用程序8
2.2 使用DataSet API处理有界数据流10
2.2.1 编写批处理代码10
2.2.2 配置依赖作用域11
2.2.3 测试Flink应用程序12
2.3 使用DataStream API处理无界数据流12
2.3.1 自定义无界数据流数据源12
2.3.2 编写无界数据流处理代码13
2.3.3 使用DataStream API的窗口功能处理无界数据流14
2.4 使用Table API处理无界数据流和有界数据流16
2.4.1 处理无界数据流16
2.4.2 处理有界数据流17
2.5 使用SQL处理无界数据流和有界数据流19
2.5.1 处理无界数据流19
2.5.2 处理有界数据流19
2.6 生成执行计划图20
-
基础篇
第3章 概览Flink24
3.1 了解流处理和批处理24
3.1.1 数据流24
3.1.2 流处理25
3.1.3 流式的批处理26
3.1.4 有状态流处理27
3.1.5 并行数据流28
3.2 Flink的整体架构29
3.2.1 部署层30
3.2.2 执行引擎层30
3.2.3 核心API层30
3.2.4 领域库层30
3.3 Flink的编程接口31
3.3.1 有状态实时流处理接口31
3.3.2 核心API(DataStream API/DataSet API)32
3.3.3 Table API和SQL33
3.3.4 比较DataStream API、DataSet API、Table API和SQL34
3.4 Flink的项目依赖34
3.4.1 Flink核心依赖和用户的应用程序依赖35
3.4.2 流处理应用程序和批处理应用程序所需的依赖35
3.4.3 Table API和SQL的依赖36
3.4.4 Connector和Library的依赖38
3.4.5 Hadoop的依赖38
3.5 了解分布式执行引擎的环境38
3.5.1 作业管理器、任务管理器、客户端38
3.5.2 任务插槽和资源40
3.5.3 Flink应用程序的执行41
-
第4章 Flink开发基础43
4.1 开发Flink应用程序的流程43
4.1.1 了解Flink应用程序的结构43
4.1.2 配置执行环境和参数44
4.1.3 初始化数据源46
4.1.4 数据转换46
4.1.5 输出结果和触发程序47
4.2 处理参数49
4.2.1 将参数传递给函数49
4.2.2 用参数工具读取参数50
4.2.3 在Flink应用程序中使用参数51
4.2.4 【实例2】通过withParameters()方法传递和使用参数53
4.2.5 【实例3】通过参数工具读取和使用参数54
4.3 自定义函数56
4.3.1 自定义函数的常用方式56
4.3.2 了解累加器和计数器57
4.3.3 【实例4】实现累加器58
4.4 数据类型和序列化59
4.4.1 认识数据类型59
4.4.2 类型擦除和类型推断62
4.4.3 【实例5】在Flink中使用元组类63
4.4.4 【实例6】在Flink中使用Java的POJO类63
4.4.5 处理类型65
4.4.6 认识TypeInformation类65
4.4.7 认识Java API类型信息66
-
第5章 Flink的转换算子69
5.1 定义键69
5.1.1 定义元组的键69
5.1.2 使用字段表达式定义键70
5.1.3 使用键选择器函数定义键71
5.2 Flink的通用转换算子71
5.2.1 DataStream和DataSet的通用转换算子71
5.2.2 【实例7】使用Map算子转换数据72
5.2.3 【实例8】使用FlatMap算子拆分句子73
5.2.4 【实例9】使用Filter算子过滤数据74
5.2.5 【实例10】使用Project算子投射字段并排序75
5.3 Flink的DataSet API专用转换算子76
5.3.1 聚合转换算子76
5.3.2 分区转换算子78
5.3.3 排序转换算子79
5.3.4 关联转换算子80
5.3.5 【实例11】在按字段位置键分组的数据集上进行聚合转换81
5.3.6 【实例12】在分组元组上进行比较运算82
5.3.7 【实例13】使用MapPartition算子统计数据集的分区计数83
5.3.8 【实例14】对POJO数据集和元组进行分组与聚合84
5.3.9 【实例15】使用First-n算子返回数据集的前n个元素87
5.4 Flink的DataStream API专用转换算子88
5.4.1 多流转换算子88
5.4.2 键控流转换算子89
5.4.3 窗口转换算子91
5.4.4 连接转换算子92
5.4.5 物理分区算子95
5.4.6 其他转换算子96
5.4.7 【实例16】使用Union算子连接多个数据源97
5.4.8 【实例17】使用Connect算子连接不同类型的数据源98
5.4.9 【实例18】使用Reduce操作键控流99
5.4.10 【实例19】使用Split算子和Select算子拆分数据流,并选择拆分后的数据流100
5.4.11 任务、算子链和资源组101
5.5 认识低阶流处理算子103
5.5.1 ProcessFunction――在非循环流上实现低阶运算103
5.5.2 CoProcessFunction――在两个输入流上实现低阶运算104
5.5.3 KeyedProcessFunction――在键控流上实现低阶运算104
5.5.4 计时器和计时器服务104
5.6 迭代运算106
5.6.1 认识DataSet的全量迭代运算和增量迭代运算106
5.6.2 比较全量迭代运算和增量迭代运算108
5.6.3 【实例20】全量迭代108
5.6.4 【实例21】增量迭代109
5.6.5 认识DataStream的迭代111
5.6.6 【实例22】实现DataStream的归零迭代运算112
-
进阶篇
第6章 使用DataSet API实现批处理116
6.1 DataSet API的数据源116
6.1.1 认识DataSet API的数据源116
6.1.2 配置CSV解析117
6.1.3 【实例23】读取和解析CSV文件118
6.1.4 读取压缩文件119
6.2 操作函数中的数据对象121
6.2.1 禁用对象重用121
6.2.2 启用对象重用122
6.3 语义注释122
6.3.1 转发字段注释123
6.3.2 【实例24】使用函数类注释声明转发字段信息124
6.3.3 非转发字段125
6.3.4 【实例25】声明非转发字段125
6.3.5 读取字段信息126
6.3.6 【实例26】声明读取字段信息126
6.4 认识分布式缓存和广播变量127
6.4.1 分布式缓存127
6.4.2 广播变量128
-
第7章 使用DataStream API实现流处理130
7.1 认识DataStream API130
7.1.1 DataStream API的数据源130
7.1.2 DataStream API的数据接收器131
7.2 窗口132
7.2.1 认识时间驱动和数据驱动的窗口132
7.2.2 认识窗口分配器133
7.2.3 认识键控窗口和非键控窗口138
7.2.4 认识窗口的生命周期139
7.2.5 【实例27】实现滚动时间窗口和滑动时间窗口140
7.2.6 【实例28】实现滚动计数窗口和滑动计数窗口141
7.2.7 【实例29】实现会话窗口144
7.2.8 认识窗口函数146
7.2.9 【实例30】使用窗口函数实现窗口内的计算148
7.2.10 触发器152
7.2.11 【实例31】自定义触发器154
7.2.12 移除器155
7.2.13 处理迟到数据156
7.2.14 处理窗口结果157
7.3 认识时间和水位线生成器159
7.3.1 认识时间159
7.3.2 设置时间特征160
7.3.3 认识水位线161
7.3.4 内置水位线生成器166
7.3.5 编写水位线生成器167
7.4 状态169
7.4.1 认识状态169
7.4.2 使用算子状态172
7.4.3 认识键控流173
7.4.4 使用键控状态174
7.5 状态持久化178
7.5.1 检查点178
7.5.2 状态快照180
7.5.3 保存点182
7.5.4 状态后端182
7.5.5 比较快照、检查点、保存点和状态后端184
7.6 旁路输出184
7.6.1 认识旁路输出184
7.6.2 【实例32】输出多条旁路数据流186
7.7 数据处理语义187
7.7.1 认识数据处理语义187
7.7.2 两阶段提交188
7.7.3 Flink“两阶段提交”的事务性写入189
7.8 【实例33】自定义事件时间和水位线191
-
第8章 使用状态处理器API――State Processor API193
8.1 认识状态处理器API193
8.2 将应用程序状态映射到DataSet194
8.3 读取状态194
8.3.1 读取算子状态194
8.3.2 读取键控状态196
8.4 编写新的保存点198
8.5 修改保存点200
8.6 【实例34】使用状态处理器API写入和读取保存点201
-
第9章 复杂事件处理库204
9.1 认识复杂事件处理库204
9.2 【实例35】实现3种模式的CEP应用程序205
9.2.1 实现单个模式的CEP应用程序205
9.2.2 实现循环模式的CEP应用程序206
9.2.3 实现组合模式的CEP应用程序207
9.3 认识模式API207
9.3.1 单个模式207
9.3.2 组合模式212
9.3.3 循环模式中的连续性213
9.3.4 模式组215
9.3.5 跳过策略218
9.4 检测模式220
9.5 复杂事件处理库中的时间222
9.5.1 按照“事件时间”处理迟到事件222
9.5.2 时间上下文223
-
第10章 使用Table API实现流/批统一处理224
10.1 Table API和SQL224
10.1.1 认识Table API和SQL224
10.1.2 Table API和SQL程序的结构225
10.1.3 认识Table API和SQL的环境225
10.1.4 认识计划器――OldPlanner和BlinkPlanner226
10.1.5 查询和输出表230
10.2 Table API和SQL的“流”的概念232
10.2.1 认识动态表232
10.2.2 在Table API和SQL中定义时间属性238
10.2.3 流上的连接242
10.2.4 认识时态表243
10.3 Catalog244
10.3.1 认识Catalog244
10.3.2 【实例36】使用Java和SQL的DDL方式创建Catalog、Catalog数据库与Catalog表247
10.3.3 使用Catalog API249
10.3.4 使用Table API和SQL Client操作Catalog251
10.4 Table API、SQL与DataStream和DataSet API的结合252
10.4.1 从Table API、SQL到DataStream、DataSet的架构252
10.4.2 使用DataStream和DataSet API创建视图与表252
10.4.3 将表转换成DataStream或DataSet253
10.4.4 从数据类型到Table Schema的映射255
10.4.5 【实例37】使用Table API转换DataSet,并应用Group算子、Aggregate算子、Select算子和Filter算子258
10.4.6 【实例38】使用SQL转换DataSet,并注册表和执行SQL查询259
-
第11章 使用SQL实现流/批统一处理261
11.1 SQL客户端261
11.2 SQL语句263
11.2.1 认识SQL语句263
11.2.2 CREATE语句264
11.2.3 【实例39】使用CREATE语句创建和查询表270
11.2.4 查询语句和查询算子271
11.2.5 DROP语句283
11.2.6 ALTER语句284
11.2.7 INSERT语句286
11.2.8 SQL hints288
11.2.9 描述语句、解释语句、USE语句和SHOW语句289
11.2.10 【实例40】使用描述语句描述表的Schema291
11.2.11 【实例41】使用解释语句解释SQL语句的计划292
11.3 变更数据获取293
11.3.1 了解变更数据获取293
11.3.2 【实例42】获取MySQL变更数据293
11.4 认识流式聚合296
11.5 【实例43】使用DDL创建表,并进行流式窗口聚合299
-
第12章 集成外部系统303
12.1 认识Flink的连接器303
12.1.1 内置的连接器303
12.1.2 Table&SQL的连接器304
12.2 异步访问外部数据307
12.3 外部系统拉取Flink数据311
12.4 认识Flink的Kafka连接器311
12.4.1 认识Kafka311
12.4.2 Kafka连接器314
12.4.3 Kafka消费者314
12.4.4 Kafka生产者320
12.4.5 使用Kafka时间戳和Flink事件时间323
12.4.6 认识Kafka连接器指标324
12.4.7 启用Kerberos身份验证324
12.4.8 常见问题325
12.5 【实例44】在Flink中生产和消费Kafka消息325
12.5.1 添加Flink的依赖325
12.5.2 自定义数据源325
12.5.3 编写消息生产者326
12.5.4 编写消息消费者327
12.5.5 测试在Flink中生产和消费Kafka消息327
-
机器学习篇
第13章 进入机器学习世界330
13.1 学习人工智能的经验330
13.2 认识机器学习331
13.3 机器学习的主要任务332
13.3.1 分类332
13.3.2 回归333
13.3.3 聚类333
13.4 开发机器学习应用程序的基础333
13.4.1 机器学习的概念333
13.4.2 开发机器学习应用程序的步骤334
13.5 机器学习的分类336
13.5.1 监督式学习336
13.5.2 无监督式学习336
13.5.3 半监督式学习336
13.5.4 增强学习336
13.6 了解机器学习算法337
13.7 机器学习的评估模型339
13.7.1 认识评估模型339
13.7.2 认识二分类评估339
13.7.3 认识多分类评估、聚类评估和回归评估342
-
第14章 流/批统一的机器学习框架(平台)Alink343
14.1 认识Alink的概念和算法库343
14.1.1 认识Flink ML343
14.1.2 Alink的架构343
14.1.3 Alink机器学习的过程344
14.1.4 Alink的概念344
14.1.5 Alink的算法库345
14.2 【实例45】以流/批方式读取、取样和输出数据集346
14.2.1 创建Alink应用程序346
14.2.2 按行读取、拆分和输出数据集348
14.2.3 读取、取样和输出Libsvm格式的数据集349
14.2.4 读取、取样CSV格式的数据集350
14.2.5 读取、解析和输出Kafka的数据集351
14.3 【实例46】使用分类算法实现数据的情感分析353
14.3.1 认识逻辑回归算法353
14.3.2 读取数据并设置管道354
14.3.3 训练模型和预测355
14.3.4 保存、查看和复用模型356
14.4 【实例47】实现协同过滤式的推荐系统357
14.4.1 了解训练集357
14.4.2 实现机器学习应用程序357
14.4.3 测试推荐系统359
-
项目实战篇
第15章 【实例48】使用大数据和机器学习技术实现一个广告推荐系统362
15.1 了解【实例架构362
15.1.2 【实例架构362
15.1.2 广告推荐流程363
15.1.3 机器学习流程364
15.2 了解推荐系统364
15.2.1 什么是推荐系统364
15.2.2 推荐系统的分类365
15.2.3 推荐系统的排序算法366
15.2.4 召回算法367
15.3 认识在线学习算法367
15.3.1 离线训练和在线训练367
15.3.2 在线学习算法FTRL368
15.4 实现机器学习369
15.4.1 处理数据369
15.4.2 特征工程370
15.4.3 离线模型训练371
15.4.4 在线模型训练371
15.4.5 在线预测372
15.4.6 在线评估372
15.5 实现接入服务层374
15.5.1 了解接入服务层374
15.5.2 在Alink中发送预测数据374
15.5.3 实现广告服务器接收预测数据375
15.6 日志打点和监测376
-
附 录377
难懂概念介绍377
Flink常见问题汇总378
Alink常见问题汇总381
内容摘要
本书针对Flink1.11版本和Alink1.2版本,采用“知识点+实例”的形式编写,包括47个基于知识点的实例和1个综合项目实例。第1章对大数据和人工智能进行初步介绍;第2章用一个实例总览Flink的关键知识点;第3~5章介绍Flink的架构、开发基础和转换算子;第6、7、10、11章深入讲解4种开发Flink应用程序的API;第8、9章讲解操作Flink状态(计算和容错)的状态处理器API和用于处理复杂事件(异常检测、反欺诈、风险控制)的CEP库;第12章讲解Flink如何与其他外部系统集成,并实现Flink与Kafka的集成;第13章介绍机器学习的基础知识;第14章讲解机器学习框架Alink的知识和实战应用;第15章是项目实战,使用大数据和机器学习技术实现一个广告推荐系统(
— 没有更多了 —
以下为对购买帮助不大的评价