猜你喜欢
Flink与Kylin深度实践

Flink与Kylin深度实践

书籍作者:开课吧 ISBN:9787111660170
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2936
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书从实用角度出发,首先介绍了Flink的功能模块、运行模式、部署安装等内容,然后着重介绍了Flink中的实时处理技术和批量处理技术,接着讲解了Flink的Table与SQL、CEP机制、调优与监控、实时数据同步解析,*后通过Flink结合Kylin实现了实时数据统计的功能。本书内容全面,由浅入深,包含大量的代码示例,并提供下载服务,每章配有重要知识点串讲视频和小结,以指导读者轻松入门。
本书适合有一定编程及大数据开发经验,有数据实时处理工作需求或者想要从事相关工作的读者阅读。

编辑推荐
适读人群 :有一定编程及大数据开发经验,有数据实时处理工作需求或者想要从事相关工作的读者

本书由浅入深地讲解了Flink各个模块的实现原理,以及各种API的使用方法,是一本带你轻松上手Flink*佳实践的书籍。

前言

◆ 前言:◆

随着信息时代的到来,数字化经济革命的浪潮正在颠覆性地改变着人类的工作方式和生活方式。在数字化经济时代,从抓数字化管理人才、知识管理人才和复合型管理人才教育入手,加快培养知识经济人才队伍,可为企业发展和提高企业核心竞争能力提供强有力的人才保障。目前,数字化经济在全球经济增长中扮演着越来越重要的角色,以互联网、云计算、大数据、物联网、人工智能为代表的数字技术近几年发展迅猛,数字技术与传统产业的深度融合释放出巨大能量,成为引领经济发展的强劲动力。
大数据技术从2008年开始在国内逐渐兴起,到现在已经十几年了,在这段时间里,IT也在飞速发展,而大数据的出现和使用无疑给IT的迅猛发展提供了一臂之力。从最初Hadoop的出现,到Hive在离线数仓功能开发中的广泛使用,再到以Storm为代表的实时处理浪潮,最后是Spark隆重登场,又掀起了内存处理时代的一场新革命。人们纷纷惊讶于Spark一站式的解决方案,它不仅将流式处理问题完美地解决了,而且在批量处理上做得非常完美,注重批量数据的内存计算。Spark技术剑走偏锋,将批量数据处理作为切入点,快速抢占了数据处理市场,成为国内大多数公司数据处理一站式框架的首选产品。
随着时间的推移,越来越多的公司在实时处理层面要求更高,希望数据从产生到完全被处理之间的时间延迟尽量减小,且能够应对实时处理带来的各种复杂问题,如数据延迟、数据的状态保存、复杂事件的检测机制等。Flink在这种背景下应运而生。本书从实战出发,结合Flink的多种特性,如实时处理、批量处理、复杂事件检测等,使用大量案例深入浅出地讲解了Flink的各种功能,让读者能够快速上手Flink开发。
学习Flink对于很多没有一定分布式经验的人来说会比较困难和枯燥,因为很难理解Flink中的状态编程、状态保存、CEP等各种优秀机制。虽然Flink经过了多年的发展,但是国内开发人员由于缺乏学习资料而难以掌握。因此笔者从实战出发,结合自己在工作当中的一些使用心得,编写了这本关于Flink的书籍,以帮助志同道合的学习者。
作为一个数据分析引擎,Kylin强大的多维分析功能使众多公司纷纷选择用它来构建内部分析平台,读者通过最后一章的学习可以快速掌握Kylin的环境搭建以及Cube构建,并轻松上手Kylin程序开发,解决Kylin使用过程中的各种问题。
本书适合有一定编程经验以及大数据开发经验的人员阅读,对于一些有数据实时处理工作需求或者想要从事相关工作的读者大有裨益。本书每章都配有专属二维码,读者扫描后即可观看作者对于本章重要知识点的讲解视频。扫描下方的开课吧公众号二维码将获得与本书主题对应的课程观看资格及学习资料,同时可以参与其他活动,获得更多的学习课程。此外,本书配有源代码资源文件,读者可登录https://github.com/kaikeba免费下载使用。
限于时间和作者水平,书中难免有不足之处,恳请读者批评指正。

编者

◆ 序言:◆

致数字化人才的一封信


如今,在全球范围内,数字化经济的爆发式增长带来了数字化人才需求量的急速上升。当前沿技术改变了商业逻辑时,企业与个人要想在新时代中保持竞争力,进行数字化转型不再是选择题,而是一道生存题。当然,数字化转型需要的不仅仅是技术人才,还需要能将设计思维、业务场景和ICT专业能力相结合的复合型人才,以及在垂直领域深度应用最新数字化技术的跨界人才。只有让全体人员在数字化技能上与时俱进,企业的数字化转型才能后继有力。
2020年对所有人来说注定是不平凡的一年,突如其来的新冠肺炎疫情席卷全球,对行业发展带来了极大冲击,在各方面异常艰难的形势下,AI、5G、大数据、物联网等前沿数字技术却为各行各业带来了颠覆性的变革。而企业的数字化变革不仅仅是对新技术的广泛应用,对企业未来的人才建设也提出了全新的挑战和要求,人才将成为组织数字化转型的决定性要素。与此同时,我们也可喜地看到,每一个身处时代变革中的人,都在加快步伐投入这场数字化转型升级的大潮,主动寻求更便捷的学习方式,努力更新知识结构,积极实现自我价值。
以开课吧为例,疫情期间学员的月均增长幅度达到300%,累计付费学员已超过400万。急速的学员增长一方面得益于国家对数字化人才发展的重视与政策扶持,另一方面源于疫情为在线教育发展按下的“加速键”。开课吧一直专注于前沿技术领域的人才培训,坚持课程内容“从产业中来到产业中去”,完全贴近行业实际发展,力求带动与反哺行业的原则与决心,也让自身抓住了这个时代机遇。
我们始终认为,教育是一种有温度的传递与唤醒,让每个人都能获得更好的职业成长的初心从未改变。这些年来,开课吧一直以最大限度地发挥教育资源的使用效率与规模效益为原则,在前沿技术培训领域持续深耕,并针对企业数字化转型中的不同需求细化了人才培养方案,即数字化领军人物培养解决方案、数字化专业人才培养解决方案、数字化应用人才培养方案。开课吧致力于在这个过程中积极为企业赋能,培养更多的数字化人才,并帮助更多人实现持续的职业提升、专业进阶。
希望阅读这封信的你,充分利用在线教育的优势,坚持对前沿知识的不断探索,紧跟数字化步伐,将终身学习贯穿于生活中的每一天。在人生的赛道上,我们有时会走弯路、会跌倒、会疲惫,但是只要还在路上,人生的代码就由我们自己来编写,只要在奔跑,就会一直矗立于浪尖!
希望追梦的你,能够在数字化时代的澎湃节奏中“乘风破浪”,我们每个平凡人的努力学习与奋斗,也将凝聚成国家发展的磅礴力量!

慧科集团创始人、董事长兼开课吧CEO方业昌


目录

◆ 目录:◆

致数字化人才的一封信
前言
●第1章Flink及其运行模式简介
1.1Flink介绍
1.2Flink的特性
1.3功能模块
1.4编程模型
1.5重新编译
1.6任务提交模型
1.7部署运行模式
1.8本章小结
●第2章Flink的部署安装及入门案例
2.1local模式部署安装
2.2standalone模式部署安装
2.3standalone模式的HA环境
2.4standalone模式在HA环境下提交任务
2.5Flink on YARN模式
2.5.1单个YARN Session模式
2.5.2多个YARN Session模式
2.5.3“flink run”脚本分析
2.6入门案例
2.6.1实时处理程序实现
2.6.2离线批量处理程序实现
2.7shell命令行代码调试
2.7.1批量处理代码调试
2.7.2实时处理代码调试
2.8本章小结
●第3章Flink实时处理之DataStream
3.1DataStream的数据源
3.1.1Socket数据源
3.1.2文件数据源
3.1.3从集合中获取数据
3.1.4自定义数据源
3.2DataStream常用算子
3.2.1transformation算子
3.2.2partition算子
3.2.3sink算子
3.3窗口和时间
3.3.1窗口的类型
3.3.2窗口的应用
3.3.3窗口数值聚合统计
3.3.4时间的类型
3.4用watermark解决乱序与数据延迟问题
3.4.1watermark的作用
3.4.2watermark解决数据延时问题
3.4.3watermark如何生成
3.4.4watermark处理乱序数据
3.4.5比watermark更晚的数据如何解决
3.4.6多并行度的watermark机制
3.5DataStream的状态保存和恢复
3.5.1keyed state的托管状态
3.5.2operator state的托管状态
3.5.3状态管理之StateBackend
3.5.4用checkpoint保存数据
3.5.5用savepoint保存数据
3.6DataStream集成Kafka
3.6.1导入jar包
3.6.2将Kafka作为Flink的source
3.6.3将Kafka作为Flink的sink
3.7本章小结
●第4章Flink批量处理之DataSet
4.1DataSet的内置数据源
4.1.1文件数据源
4.1.2集合数据源
4.2DataSet常用算子
4.2.1transformation算子
4.2.2partition算子
4.2.3sink算子
4.3DataSet的参数传递
4.4DataSet连接器
4.4.1文件系统连接器
4.4.2Flink集成HBase之数据读取
4.4.3Flink读取数据写入HBase
4.5广播变量、累加器与分布式缓存
4.5.1广播变量
4.5.2累加器
4.5.3分布式缓存
4.6本章小结
●第5章Flink的Table与SQL
5.1Table与SQL简介
5.2为什么需要SQL
5.3Table与SQL的语法解析
5.3.1创建TableEnvironment对象
5.3.2注册表
5.3.3查询表
5.3.4注册数据保存表
5.3.5Table与SQL的数据查询执行原理
5.3.6DataStream与DataSet集成
5.4Table与SQL编程开发
5.4.1使用SQL读取CSV文件并进行查询
5.4.2DataStream与表的互相转换
5.4.3DataSet与表的互相转换
5.4.4SQL处理Kafka的JSON格式数据
5.5本章小结
●第6章Flink数据去重与数据连接
6.1数据去重
6.1.1基于MapState实现流式去重
6.1.2基于SQL实现流式去重
6.2流的连接实现
6.2.1使用CoGroup实现流连接
6.2.2interval join机制
6.2.3SQL实现连接操作
6.3本章小结
●第7章Flink中的复杂事件处理(CEP)机制
7.1CEP简介
7.2CEP中的模式
7.2.1个体模式(Individual Pattern)
7.2.2组合模式(Combining Pattern)
7.2.3模式组(Group of Patterns)
7.3CEP综合案例
7.3.1用户IP变换报警
7.3.2高温预警
7.3.3支付超时监控
7.4本章小结
●第8章Flink调优与监控
8.1监控指标
8.1.1系统监控指标
8.1.2自定义监控指标
8.2反压机制与监控
8.2.1反压线程采样
8.2.2反压线程配置
8.3checkpoint监控
8.4checkpoint调优
8.4.1如何衡量checkpoint的速度大小
8.4.2相邻checkpoint的间隔时间设置
8.4.3checkpoint资源设置
8.4.4checkpoint的Task本地性恢复
8.4.5异步checkpoint设置
8.4.6checkpoint数据压缩
8.5内存管理调优
8.5.1内存托管
8.5.2内存段管理
8.5.3内存段与字节缓冲区
8.5.4内存段对垃圾收集器的影响
8.5.5内存配置
8.5.6堆外内存
8.6本章小结
●第9章基于Flink实现实时数据同步解析
9.1实时数仓架构
9.2MySQL数据实时同步
9.2.1MySQL的binlog介绍
9.2.2maxwell简介
9.2.3开启MySQL的binlog功能
9.2.4安装maxwell实现实时采集MySQL数据
9.2.5启动服务
9.2.6插入数据并进行测试
9.3数据库建表
9.4开发模拟数据生成模块
9.4.1创建Maven工程并导入jar包
9.4.2开发Flink程序批量导入商品表数据
9.4.3开发订单生成程序模拟订单持续生成
9.5数据获取模块开发
9.5.1全量拉取数据
9.5.2增量拉取数据
9.6本章小结
●第10章基于Kylin的实时数据统计
10.1Kylin简介
10.1.1为什么要使用Kylin
10.1.2Kylin的使用场景
10.1.3Kylin如何解决海量数据的查询问题
10.2Kylin基础知识
10.2.1数据仓库、OLAP、BI
10.2.2事实表与维度表
10.2.3维度与度量
10.2.4数据仓库常用建模方式
10.2.5数据立方体
10.2.6Kylin的工作原理
10.2.7Kylin的体系架构
10.2.8Kylin的特点
10.3Kylin环境搭建
10.3.1单机模式安装
10.3.2集群环境搭建
10.4Kylin的使用
10.4.1创建Hive数据
10.4.2创建Kylin工程
10.4.3为Kylin添加模型
10.4.4通过Kylin来构建Cube
10.4.5构建Cube
10.4.6数据查询分析
10.5Kylin的构建流程
10.6Cube构建算法
10.6.1逐层构建法
10.6.2快速构建法
10.7Cube构建的优化
10.7.1使用衍生维度(Derived Dimension)
10.7.2使用聚合组(Aggregation Group)
10.7.3并发粒度优化
10.7.4rowKey优化
10.7.5增量Cube构建
10.8备份以及恢复Kylin的元数据
10.9Kylin的垃圾清理
10.10BI工具集成
10.11使用Kylin分析HBase数据
10.12本章小结


产品特色