万本电子书0元读

万本电子书0元读

顶部广告

Flink原理深入与编程实战——Scala+Java(微课视频版)电子书

本书除了提供了丰富的上机实践操作和范例程序详细讲解之外,本书作者还为和使用本书的读者提供了搭建好的Hadoop和Flink大数据发和学习环境。读者既可以参照本书的讲解自行搭建Hadoop和Flink环境,也可直使用作者提供的始和学习环境,快速始大数据和Flink的学习。 本书具有以下几个特: (1) 面向零基础读者,知识深浅适当,代码完整易懂。 (2) 内容全面系统,包括架构原理、发环境及程序部署、流和批计算等,并特别包含了第7章“基于Flink构建批流一体数仓”和第8章“基于Flink和数据湖构建实时数仓”内容。

售       价:¥

纸质售价:¥125.60购买纸书

28人正在读 | 0人评论 6.5

作       者:辛立伟

出  版  社:清华大学出版社

出版时间:2023-02-01

字       数:19.3万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书讲述Apache Flink大数据框架的原理,以及如果将Apache Flink应用于大数据的实时流处理、批处理、批流一体分析等各个场景。通过原理深学习和实践示例、案例的学习应用,使读者了解并掌握Apache Flink流处理的框架的基本原理和技能,近理论与实践的距离。 全书共分为8章,主要内容包括Flink架构与集群安装、Flink发环境准备(基于IntelliJ IDEA和Maven)、发Flink实时数据处理程序、Flink流数据分析、时间和水印概念、窗口操作、状态和容错、侧输出流、Flink流连器、Flink流处理案例、发Flink批数据处理程序、使用Table API行数据处理、Flink on YARN、基于Flink构建批流一体数仓、基于Flink和Iceberg数据湖构建实时数仓。本书源码全部在Apache Flink 1.13.2上调试成功,所有示例和案例均提供Scala语言和Java语言两套API的实现(第8章除外),供读者参考。 本书系统讲解了Apache Flink大数据框架的原理和流、批处理的发实践,内容全面、实例丰富、可操作性强,做到了理论与实践相结合。本书适合大数据学习爱好者、想要门Apache Flink的读者作为门和提高的技术参考书,也适合用作大中专院校大数据专业相关的学生和老师的教材或教学参考书。<br/>【推荐语】<br/>本书除了提供了丰富的上机实践操作和范例程序详细讲解之外,本书作者还为和使用本书的读者提供了搭建好的Hadoop和Flink大数据发和学习环境。读者既可以参照本书的讲解自行搭建Hadoop和Flink环境,也可直使用作者提供的始和学习环境,快速始大数据和Flink的学习。 本书具有以下几个特: (1) 面向零基础读者,知识深浅适当,代码完整易懂。 (2) 内容全面系统,包括架构原理、发环境及程序部署、流和批计算等,并特别包含了第7章“基于Flink构建批流一体数仓”和第8章“基于Flink和数据湖构建实时数仓”内容。 (3) 所有代码均基于Flink 1.13.2。 (4) 双语实现,大部分示例、案例,均包含Scala和Java两种语言版本的实现。<br/>【作者】<br/>辛立伟,一个在IT领域摸爬滚20多年的老程序员、技术培训师、技术作者。横跨Java、数据库、大数据发与分析、人工智能等多个领域,参与多个IT项目的架构设计与发。长期坚持撰写技术博客,曾在多个大学讲授Java发、数据库和大数据技术课程,曾担任中国石油大学(青岛校区)等多所院校的外聘讲师。 <br/>
目录展开

版权页

作者简介

内容简介

前言

目录

第1章 Flink架构与集群安装

1.1 Flink简介

1.1.1 Flink发展历程

1.1.2 Flink特性

1.2 Flink应用场景

1.2.1 事件驱动应用程序

1.2.2 数据分析应用程序

1.2.3 数据管道应用程序

1.3 Flink体系架构

1.3.1 Flink系统架构

1.3.2 Flink运行时架构

1.3.3 Flink资源管理

1.3.4 Flink作业调度

1.3.5 Flink故障恢复

1.3.6 Flink程序执行模式

1.4 Flink集群安装

1.4.1 Flink独立集群安装和测试

1.4.2 Flink完全分布式集群安装

1.4.3 Flink常用命令

第2章 Flink开发环境准备

2.1 安装和配置

2.1.1 安装和配置Maven

2.1.2 修改Maven本地仓库默认位置

2.1.3 创建初始模板项目

2.1.4 构建打包项目

2.2 使用IntelliJ IDEA+Maven开发Flink项目

2.2.1 在IntelliJ IDEA中创建Flink项目

2.2.2 设置项目基本依赖

2.2.3 用于构建具有依赖项的JAR的模板

2.2.4 编写批处理代码并测试执行

2.2.5 项目打包并提交Flink集群执行

2.3 Flink相关概念

2.3.1 Flink数据流

2.3.2 Flink分层API

第3章 开发Flink实时数据处理程序

3.1 Flink流处理程序编程模型

3.1.1 流数据类型

3.1.2 流应用程序实现

3.1.3 流应用程序剖析

3.2 Flink支持的数据源

3.2.1 基于Socket的数据源

3.2.2 基于文件的数据源

3.2.3 基于集合的数据源

3.2.4 自定义数据源

3.3 Flink数据转换

3.3.1 map转换

3.3.2 flatMap转换

3.3.3 filter转换

3.3.4 keyBy转换

3.3.5 reduce转换

3.3.6 聚合转换

3.3.7 union转换

3.3.8 connect转换

3.3.9 coMap及coFlatMap转换

3.3.10 iterate转换

3.3.11 project转换

3.4 Flink流数据分区

3.4.1 流数据分发模式

3.4.2 数据分区方法

3.4.3 数据分区示例

3.4.4 理解操作符链

3.5 Flink数据接收器

3.5.1 内置数据接收器

3.5.2 使用流文件连接器

3.5.3 自定义数据接收器

3.6 时间和水印概念

3.6.1 时间概念

3.6.2 事件时间和水印

3.6.3 水印策略

3.6.4 处理空闲数据源

3.6.5 编写水印生成器

3.6.6 内置水印生成器

3.6.7 分配时间戳和水印示例

3.7 窗口操作

3.7.1 理解Flink窗口概念

3.7.2 窗口分配器

3.7.3 窗口函数

3.7.4 触发器

3.7.5 清除器

3.7.6 处理迟到数据

3.7.7 处理窗口结果

3.7.8 窗口连接

3.8 低级操作

3.8.1 ProcessFunction

3.8.2 KeyedProcessFunction示例

3.8.3 案例:服务器故障检测报警程序

3.9 状态和容错

3.9.1 状态运算

3.9.2 状态的类型

3.9.3 使用托管的Keyed State

3.9.4 使用托管Operator State

3.9.5 广播状态

3.9.6 状态后端

3.9.7 检查点机制

3.9.8 状态快照

3.10 侧输出流

3.10.1 什么是侧输出流

3.10.2 侧输出流应用示例

3.11 Flink流连接器

3.11.1 Kafka连接器

3.11.2 JDBC连接器

3.12 其他

3.12.1 在应用程序中使用日志

3.12.2 使用ParameterTool

3.12.3 命名大型TupleX类型

3.13 Flink流处理案例

3.13.1 处理IoT事件流

3.13.2 运输公司车辆超速实时监测

第4章 开发Flink批数据处理程序

4.1 Flink批处理程序编程模型

4.1.1 批应用程序实现

4.1.2 批应用程序剖析

4.2 数据源

4.2.1 基于文件的数据源

4.2.2 基于集合的数据源

4.2.3 通用的数据源

4.2.4 压缩文件

4.3 数据转换

4.3.1 map转换

4.3.2 flatMap转换

4.3.3 mapPartition转换

4.3.4 filter转换

4.3.5 reduce转换

4.3.6 在分组数据集上的reduce转换

4.3.7 在分组数据集上的GroupReduce转换

4.3.8 在分组数据集上的GroupCombine转换

4.3.9 在分组元组数据集上执行聚合

4.3.10 在分组元组数据集上执行minBy转换

4.3.11 在分组元组数据集上执行maxBy转换

4.3.12 在全部元组数据集上执行聚合操作

4.3.13 distinct转换

4.3.14 join连接转换

4.3.15 union转换

4.3.16 project转换

4.3.17 first-n转换

4.4 数据接收器

4.4.1 将计算结果保存到文本文件

4.4.2 将计算结果保存到JDBC

4.4.3 标准DataSink方法

4.4.4 本地排序输出

4.5 广播变量

4.6 分布式缓存

4.7 参数传递

4.7.1 通过构造函数传参

4.7.2 通过withParameters(Configuration)传参

4.7.3 通过ExecutionConfig传递全局参数

4.8 数据集中的拉链操作

4.8.1 密集索引

4.8.2 唯一索引

4.9 Flink批处理示例

4.9.1 分析豆瓣热门电影数据集——Scala实现

4.9.2 分析豆瓣热门电影数据集——Java实现

第5章 使用Table API进行数据处理

5.1 依赖

5.2 Table API与SQL编程模式

5.2.1 TableEnvironment

5.2.2 Table API与SQL程序的结构

5.2.3 在Catalog中创建表

5.2.4 查询表

5.2.5 向下游发送表

5.2.6 翻译并执行查询

5.3 Table API

5.3.1 关系运算

5.3.2 窗口运算

5.3.3 基于行的操作

5.4 Table API与DataStream API集成

5.4.1 依赖

5.4.2 在DataStream和Table之间转换

5.4.3 处理insert-only流

5.4.4 处理变更日志流

5.5 Table API实时流处理案例

5.5.1 传感器温度实时统计

5.5.2 车辆超速实时监测

5.5.3 电商用户行为实时分析

第6章 Flink on YARN

6.1 Flink on YARN session

6.1.1 下载Flink集成Hadoop依赖包

6.1.2 运行Flink on YARN session

6.1.3 提交Flink作业

6.1.4 停止Flink on YARN session

6.2 Flink on YARN支持的部署模式

6.2.1 Application模式

6.2.2 Per-Job集群模式

6.2.3 session模式

第7章 基于Flink构建流批一体数仓

7.1 Flink集成Hive数仓

7.1.1 Flink集成Hive的方式

7.1.2 Flink集成Hive的步骤

7.1.3 Flink连接Hive模板代码

7.2 批流一体数仓构建实例

7.2.1 数据集说明

7.2.2 创建Flink项目

7.2.3 创建执行环境

7.2.4 注册HiveCatalog

7.2.5 创建Kafka流表

7.2.6 创建Hive表

7.2.7 流写Hive表

7.2.8 动态读取Hive流表

7.2.9 完整示例代码

7.2.10 执行步骤

7.3 纯SQL构建批流一体数仓

7.3.1 使用Flink SQL客户端

7.3.2 集成Flink SQL CLI和Hive

7.3.3 注册HiveCatalog

7.3.4 使用SQL Client提交作业

7.3.5 构建批流一体数仓完整过程

第8章 基于Flink和Iceberg数据湖构建实时数仓

8.1 现代数据湖概述

8.1.1 什么是数据湖

8.1.2 数据湖架构

8.1.3 开源数据湖框架

8.2 基于Flink+Iceberg构建企业数据湖

8.2.1 Apache Iceberg的优势

8.2.2 Apache Iceberg经典业务场景

8.2.3 应用Apache Iceberg的准备工作

8.2.4 创建和使用Catalog

8.2.5 Iceberg DDL命令

8.2.6 Iceberg SQL查询

8.2.7 Iceberg SQL写入

8.2.8 使用DataStream读取

8.2.9 使用DataStream写入

8.2.10 重写文件操作

8.2.11 未来改进

8.3 基于Flink+Iceberg构建准实时数仓

8.3.1 实时数仓构建

8.3.2 执行OLAP联机分析

图书推荐

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部