欢迎光临中图网 请 | 注册

Flink实战派

作者:龙中华
出版社:电子工业出版社出版时间:2021-04-01
开本: 16开 页数: 396
中 图 价:¥76.3(7.0折) 定价  ¥109.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

Flink实战派 版权信息

  • ISBN:9787121408526
  • 条形码:9787121408526 ; 978-7-121-40852-6
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>>

Flink实战派 本书特色

适读人群 :本书可以作为具备Java基础的开发人员、大数据领域从业人员的参考用书。另外,阅读本书的读者不需要具备高等数学知识和人工智能的底层算法知识。《Flink实战派(双色版)》特色: -版本较新:针对Flink 1.11版本和Alink 1.2版本。 -体例科学:采用“知识点+实例”的形式编写。 -实例丰富:47个基础实例 + 1个项目实例。 -跨界整合:①讲解了4种开发Flink应用程序的API,即DataSet API、DataStream API、Table API和SQL相关知识;②讲解了状态处理器API、复杂事件处理库,以及常用的消息中间件Kafka;③讲解了大数据和人工智能的结合,以及机器学习框架Alink。 -编排讲究:本书涉及的术语尽量做到有迹可循,每一个术语都尽可能在前面的章节中有所描述。章节递进关系清楚,内容顺序合理,从头到尾逻辑连贯。

Flink实战派 内容简介

本书针对Flink 1.11版本和Alink 1.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章是项目实战,使用大数据和机器学习技术实现一个广告推荐系统(包含离线训练、在线训练、实时预测和在线服务)。 本书可以作为具备Java基础的开发人员、大数据领域从业人员的参考用书。 阅读本书的读者不需要具备高等数学知识和人工智能的底层算法知识。

Flink实战派 目录

入门篇 第1章 进入大数据和人工智能世界 2 1.1 认识大数据和人工智能 2 1.2 认识Flink 4 1.2.1 Flink是什么 4 1.2.2 Flink的发展历程 4 1.2.3 Flink的应用场景 6 1.3 认识Alink 6 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章 概览Flink 24 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和SQL 33 3.3.4 比较DataStream API、DataSet API、Table API和SQL 34 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 API 130 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 API 193 8.1 认识状态处理器API 193 8.2 将应用程序状态映射到DataSet 194 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 认识模式API 207 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和SQL 224 10.1.1 认识Table API和SQL 224 10.1.2 Table API和SQL程序的结构 225 10.1.3 认识Table API和SQL的环境 225 10.1.4 认识计划器――OldPlanner和BlinkPlanner 226 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 Catalog 244 10.3.1 认识Catalog 244 10.3.2 【实例36】使用Java和SQL的DDL方式创建Catalog、Catalog数据库与Catalog表247 10.3.3 使用Catalog API 249 10.3.4 使用Table API和SQL Client操作Catalog 251 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或DataSet 253 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 hints 288 11.2.9 描述语句、解释语句、USE语句和SHOW语句 289 11.2.10 【实例40】使用描述语句描述表的Schema 291 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 认识Kafka 311 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章 流/批统一的机器学习框架(平台)Alink 343 14.1 认识Alink的概念和算法库 343 14.1.1 认识Flink ML 343 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 在线学习算法FTRL 368 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
展开全部

Flink实战派 作者简介

龙中华 10多年来一直在某一线互联网公司担任技术负责人。目前带领多个研发团队,承担系统的需求分析、架构设计、项目管理,以及技术团队管理和培训等职责。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服