体系课-大数据工程师2022


阶段一:走进大数据
第1周   学好大数据先攻克Linux
在步入大数据殿堂之前,先带领大家快速掌握大数据的必备技能:Linux的操作使用,为后面学习大数据技术打下坚实基础。预习资料传送门:http://suo.im/613aVS 提取码:bbbb

课程安排:
1、掌握Linux虚拟机的安装和配置
2、使用ScecureCRT连接Linux虚拟机
3、掌握Linux中常见高级命令(vi、wc、sort、date、jps、kill等命令)的使用
4、掌握Linux中三剑客(grep、sed、awk)的常见用法
5、掌握Linux的高级配置(ip、hostname、防火墙)
6、掌握Shell脚本的开发
7、掌握Shell中变量、循环和判断的使用
8、掌握Shell中的扩展内容
9、掌握Linux中crontab定时器的使用
10、了解认识什么是大数据
11、大数据产生的背景
12、大数据的4V特征
13、大数据的行业应用
【本周思考与讨论】
1、结合自己的实际情况,明确学习目标、制定学习计划。有计划、有执行、有落实,必有收获!
2、利用学习的Linux高级技能实现论坛访问日志数据分析,看一下到底是谁在暴力攻击你的网站?
3、某云服务器被挖矿病毒程序侵入,病毒程序很顽强,如何开发一个脚本监控并杀掉此病毒程序?
4、手动安装JDK配置环境变量太繁琐了,如何开发一个一键安装配置JDK的程序?
5、为什么使用jps命令查看不到正在运行的Java进程?
6、在SecureCRT中按Ctrl+s会发生什么现象,尝试一下?
7、如何确认Crontab中的定时任务是否正常执行?
8、使用crontab -e 和 vi /etc/crontab配置的定时任务有什么区别?
9、谈一谈你眼中的大数据是什么样的?
学习贵在坚持,每天进步一点点!
第2周   大数据起源之初识Hadoop
Hadoop是大数据开创者,引领者,学习大数据必经之路,本周带领大家了解Hadoop,以及Hadoop集群的安装部署。预习资料:http://suo.im/5SMmAO 提取码:bbbb

课程安排:
1、什么是Hadoop
2、Hadoop发行版介绍
3、Hadoop版本演变历史
4、Hadoop3.x的细节优化
5、Hadoop三大核心组件介绍
6、伪分布集群安装部署
7、分布式集群安装部署
8、Hadoop的客户端节点
【本周思考与讨论】
1、如何让你对大数据平台进行技术选型,你是选择原生Hadoop还是CDH/HDP?这样选择的依据是什么?
2、谈一下你对Hadoop的认知,Hadoop的出现到底改变了什么?
3、你在安装Hadoop集群的时候都遇到了哪些坑?如何解决的?
4、动手配置一个Hadoop客户端节点,都有哪些注意事项?
5、Hadoop客户端节点是怎么识别Hadoop集群的?
6、如果让你规划一套大数据平台的部署方案,你会如何规划?
授人以鱼不如授人以渔,加油,打工人!
第3周   Hadoop之HDFS的使用
通过生活场景"小明租房"案例引入HDFS核心架构,掌握HDFS的常见Shell操作以及Java代码操作,对以后实现海量数据的存储打下基础。

课程安排:
1、生活场景引入:"小明租房"案例一步一步引入Hadoop中的分布式存储架构
2、HDFS的Shell介绍
3、HDFS的常见Shell操作
4、HDFS案例实操
5、Java代码操作HDFS
6、HDFS的高级Shell命令
7、HDFS读数据过程分析
8、HDFS写数据过程分析
9、HDFS写数据源码分析
【本周思考与讨论】
1、还有哪些和HDFS类型的分布式文件系统?它们都有什么特点?
2、如何实现大海捞针,从HDFS中揪出不经常使用并且占用空间的大文件?
3、如何获取指定的HDFS目录下所有文件的Block块信息?
4、在工作中最常用的是使用shell命名操作HDFS还是使用Java代码操作?
5、我们自己串联多块硬盘实现海量数据存储和使用HDFS有什么区别?
6、HDFS集群之间是否可以实现数据迁移?
7、如何通过JS代码(或者C++、PHP之类的代码)获取HDFS中的文件信息?
知其然也要知其所以然!
第4周   Hadoop之HDFS核心进程剖析
通过对HDFS中核心进程NameNode、SecondaryNameNode、DataNode进行详细分析,帮助大家更好的理解HDFS的底层原理

课程安排:
1、NameNode介绍
2、NameNode深入
3、SecondaryNameNode介绍
4、DataNode介绍
5、HDFS的回收站
6、HDFS的安全模式详解
7、实战:定时上传数据至HDFS
8、HDFS的高可用和高扩展机制分析
【本周思考与讨论】
1、HDFS中的回收站和windows中的回收站有什么区别?
2、Hadoop中必须要有SecondaryNameNode进程吗?
3、HDFS中NameNode内存将要耗尽,有什么解决方案?
4、一台128G内存的NameNode节点理论上可以存储多少文件的元数据?
5、HDFS中的安全模式是为了干什么?有什么意义?
6、HDFS的存储能力理论上来说是有极限的,如何扩容?
7、开发脚本实现定时向HDFS中上传内容和下载内容
动手一次胜过浏览万次,多做,多练!
第5周   Hadoop之初识MR
通过"计算扑克牌中的黑桃个数"案例引入MapReduce的思想,详细分析了MapReduce的执行流程,并且通过开发WordCount案例加深理解。

课程安排:
1、MapReduce介绍
2、 MapReduce执行原理
3、实战:WordCount案例图解
4、实战:WordCount案例开发
5、MapReduce任务日志查看
6、停止Hadoop集群中的任务
7、MapReduce程序扩展
【本周思考与讨论】
1、谈一下你对本地计算的理解?它的计算性能为什么这么高?
2、如何开发一个只有map阶段的MapReduce任务?这种任务的应用场景是什么?
3、使用MapReduce如何开发自定义二次排序Key?
4、使用MapReduce如何实现统计TopN的需求?
5、谈一谈你对源码分析的看法?如何快速高效分析项目源码?
6、如果MapReduce任务中没有shuffle过程会出现什么现象?
7、MapReduce中的Combiner阶段在什么场景下适合使用?
8、如何使用MapReduce对数据实现全局排序?
源码是解决一切问题的根源,一言不合,源码中见分晓!
阶段二:PB级离线数据计算分析存储方案
第6周   拿来就用的企业级解决方案
详细分析了小文件的解决方案、数据倾斜的解决方案、YARN调度器的使用、以及Hadoop在CDH和HDP中的使用。

课程安排:
1、小文件问题之SequenceFile
2、小文件问题之MapFile
3、案例:小文件存储和计算
4、 数据倾斜问题分析
5、数据倾斜案例实战
6、YARN的基本情况介绍
7、YARN中的调度器分析
8、案例:YARN多资源队列配置和使用
9、Hadoop官方文档使用指北
10、Hadoop在CDH中的使用
11、Hadoop在HDP中的使用
【本周思考与讨论】
1、在工作中如何遇到了小文件问题,都有哪些解决方法?你推荐是用哪种?理由是什么?
2、能不能使用zip或者rar文件解决HDFS中的小文件问题?
3、总结一下数据倾斜产生的原因,如何避免?如何解决?
4、如何从一批数据中找出倾斜的key?
5、分析一下Hadoop中的RPC框架?
6、想一下,如果给你一个10T内存、6400个CPU的大数据集群,你会如何在YARN中分配多个资源队列?
7、在MapReduce程序中使用gzip数据压缩方式对程序计算性能进行优化,对比一下性能提升了多少?
8、在MapReduce中如何实现多路输入(同时指定多个不同的输入目录)?
9、在MapReduce中如何实现多路输出(按照一定规则,将结果输出到多个不同的目录中)?
【福利加餐】
1、大数据技术揭开抖音推荐的真相
2、大厂资深HR教你如何准备简历和面试
3、扩展知识-Hadoop3.0新特性之纠删码技术
4、疑难问题-课程内容典型疑难问题整理【第一弹】
5、面试题-课程内容常见面试题整理【第一弹】
理论和实践是好基友,学练结合,效果增倍!
第7周   Flume从0到高手一站式养成记
Flume是一个分布式、高可靠、高可用的系统,能够有效的收集、聚合、移动大量的日志数据,在数据采集领域,属于中流砥柱,在这里通过原理、实战、监控、优化等层面对Flume进行学习。

课程安排:
1、快速了解Flume
2、Flume的三大核心组件
3、Flume安装部署
4、Flume的Hello World
5、案例:采集文件内容上传至HDFS
6、Flume高级组件之Source Interceptors
7、Flume高级组件之Channel Selectors
8、Flume高级组件之Sink Processors
9、各种自定义组件
10、Flume优化
11、Flume进程监控
【本周思考与讨论】
1、设想一下,给你几百台机器让你采集日志数据,你应该如何快速高效的实现?
2、和Flume类似的日志数据采集工具还有Logstash、Filebeat,他们有什么典型区别?如何进行技术选型?
3、如何开发一个通用的监控程序来监控Flume进程的运行情况,实现监控+预警+自动重启一条龙服务?
4、如何使用Flume中的自定义拦截器实现数据分目录存储?
5、如果Flume中内置的sink组件不够用,如何开发自定义的Sink组件实现数据存储?
6、 Flume中哪些地方用到了事务机制?
合适的才是最好的,技术选型的时候要坚持此原则!
第8周   数据仓库Hive从入门到小牛
频繁的开发MapReduce是非常繁琐的,并且很多业务人员是不懂代码的,如何让他们也可以很方便的操作HDFS中的海量数据呢?Hive的横空出世,解决了这一难题。

课程安排:
1、快速了解Hive
2、数据库和数据仓库的区别
3、Hive安装部署
4、Hive使用方式之命令行方式
5、Hive使用方式之JDBC方式
6、Set命令的使用
7、Hive的日志配置
8、Hive中数据库的操作
9、Hive中表的操作
10、Hive中数据类型的应用
11、Hive表类型之内部表+外部表
12、Hive表类型之内部分区表
13、Hive表类型之外部分区表
14、Hive表类型之桶表+视图
15、Hive数据处理综合案例
16、Hive高级函数之分组排序取TopN
17、Hive高级函数之行转列
18、Hive高级函数之列转行
19、Hive的排序函数
20、Hive的分组和去重函数
21、一个SQL语句分析
22、Hive的Web工具-HUE
【本周思考与讨论】
1、如何在Hive中开发自定义SQL函数实现单词首字母大写转换功能?
2、如何开发开发只产生一次shuffle且无子查询的SQL语句?
3、使用Hive SQL统计一份订单销售数据,计算出月环比
4、针对一个用到了union all和group by的SQL,在数据量很大的情况下,就会很慢,如何优化此SQL?
5、在一份海量数据中,如何使用HiveSQL发现倾斜的Key?
6、摘取自某同学工作中的实际需求:使用Hive加载指定复杂嵌套格式的数据
7、生产环境中为什么建议使用Hive外部表?
8、Hive分区表如何开启自动加载分区?
9、Hive中支持多种数据存储格式,默认是TextFile,还可以SequenceFile、RCFile、ORCFile等,这4种数据存储格式有什么优缺点?
第9周   快速上手NoSQL数据库HBase
HBase是一个高可靠 、高性能 、面向列 、可伸缩的NoSQL数据库,解决了HDFS无法实现修改删除的问题,适合应用在高并发实时读写的应用场景中。

课程安排:
1、HBase核心原理介绍
2、列式存储简介及优点
3、HBase典型应用场景及应用案例分析
4、HBase的优缺点总结
5、HBase逻辑存储模型详解
6、HBase集群安装部署
7、HBase常用命令之基础命令和DDL命令
8、HBase常用命令之增删改查命令和命名空间的操作
9、HBase JavaAPI开发环境配置
10、HBase JavaAPI之增加和查询操作
11、HBase JavaAPI之查询多版本数据和删除操作
12、HBase JavaAPI之创建表和删除表
13、Region概念详解
14、HBase物理架构详解
15、HBase底层架构详解
16、WAL预写日志系统
17、HFile文件及布隆过滤器介绍
18、HFile的合并机制详解
19、Region的分裂机制详解
20、Region的负载均衡策略详解
21、列族高级设置
22、Scan全表扫描功能详解
23、HBase批量导入和批量导出功能详解
24、HBase链接池分析
25、HBase预分区、Rowkey列族的设计原则
26、HBase核心参数优化
27、HBase扩展内容(Hive+HBase、Phoenix、协处理器、Elasticsearch+HBase)
28、HBase常见问题总结
29、HBase实现分页功能
30、封装HBaseUtils工具类
【本周思考与讨论】
1、如果想支持海量数据读写需求和SQL查询分析需求,有哪些解决方案或技术组件可以实现?
2、HDFS是不支持修改删除的,为什么HBase是基于HDFS的,HBase却可以支持修改删除?
3、如果有固定多个字段组合查询的需求,应该对HBase做哪些设计?
4、为什么在大数据领域很多技术框架底层数据存储倾向于使用列式存储?
5、谈一谈你的HBase中的多数据版本特性的理解?
6、谈一谈你对HBase中列族的理解?
阶段三:Spark+综合项目:电商数据仓库设计与实战
第10周   7天极速掌握Scala语言
Scala的函数式编程受到很多框架的青睐,例如Kafka、Spark、Flink等框架都是使用Scala作为底层源码开发语言,下面就带着大家7天极速掌握Scala语言。

课程安排:
1、快速了解Scala
2、Scala环境安装配置
3、Scala中的变量和数据类型
4、Scala中的表达式和循环
5、Scala集合体系之Set+List+Map
6、Scala中的Array和Tuple
7、Scala中函数的使用
8、Scala面向对象之类的使用
9、Scala面向对象之对象和伴生对象
10、Scala面向对象之apply和main的使用
11、Scala面向对象之接口的使用
12、Scala函数式编程之匿名函数和高阶函数的使用
13、Scala高级特性之模式匹配和隐式转换
【本周思考与讨论】
1、谈一下你对Scala语言的认知,Scala和Java有什么异同?Scala的语法格式和Python有没有相似之处?
2、Scala中的匿名函数和Java中的匿名函数有什么区别?
3、如何使用Scala代码读取MySQL数据库中的数据?
4、如何使用Scala实现单例设计模式?Scala中不支持静态关键字,如何实现单例?
5、Scala中的数据类型和Java中的数据类型有什么区别?
6、Scala代码和Java代码可以无缝集成吗?
7、分析一下Scala中的map和tuple 的区别?
8、Scala中的下划线 _ 有哪些作用?
第11周   Spark快速上手
Spark是目前企业中应用最广泛的计算引擎,盘它!实际案例详细分析Spark中的Transformation算子和Action算子使用,RDD持久化,共享变量使用,最后通过一个综合案例加深理解。

课程安排:
1、快速了解Spark
2、Spark 集群安装部署(Standalone+ON YARN)
3、Spark工作原理分析
4、什么是RDD
5、Spark架构原理
6、Spark项目开发环境配置
7、WordCount代码开发(Java+Scala)
8、Spark任务的三种提交方式
9、Spark开启historyServer服务
10、创建RDD的三种方式
11、Transformation和Action介绍
12、Transformation操作开发实战
13、Action操作开发实战
14、RDD持久化原理
15、RDD持久化开发实战
16、共享变量之Broadcast Variable的使用
17、共享变量之Accumulator的使用
18、案例实战:TopN主播统计
19、面试题
【本周思考与讨论】
1、谈一下你对Spark的理解,Spark和Hadoop之间是什么关系?
2、按照你的理解,在工作中最常用的是Spark的哪一种任务提交方式?说出你的理由?
3、你们目前工作中开发Spark代码是使用scala语言还是java语言?你倾向于使用哪一种语言?
4、在Spark程序中将处理的结果数据按照一定的规则,输出到多个不同的目录中,实现多路输出
5、如何使用Spark程序实现对WordCount的结果排序输出?
6、如何使用Spark实现自定义二次排序Key的开发?
7、Spark中join和cogroup的区别?
8、Spark如何读取多个不同目录下的数据(多路输入)?
9、介绍一下Spark的远程进程通信机制?
第12周   Spark性能优化的道与术
通过对Spark中的宽依赖、窄依赖、Stage、Shuffle机制进行详细分析,加深对Spark的理解,以及对Spark中的checkpoint机制通过源码层面进行深度剖析。

课程安排:
1、宽依赖和窄依赖
2、Stage的理解
3、Spark任务的三种提交模式
4、Shuffle介绍
5、三种Shuffle机制分析
6、checkpoint概述
7、checkpoint和持久化的区别
8、checkpoint代码开发和执行分析
9、checkpoint源码分析之写操作和读操作
10、Spark程序性能优化分析
11、高性能序列化类库Kryo的使用
12、持久化或者checkpoint
13、JVM垃圾回收调忧
14、提高并行度
15、数据本地化
16、算子优化
17、SparkSql快速上手使用
18、实战:SparkSQL实现TopN主播统计
【本周思考与讨论】
1、谈一下你对宽依赖和窄依赖的理解,以及Stage的个数和宽依赖之间的关系?
2、谈一下你对Spark性能优化的总结,到底哪种优化策略的效果最明显?
3、想要在Spark中直接操作MySQL应该如何实现?
4、如何在SparkSQL中使用自定义函数(UDF)?
5、算子优化在优化方案中常见吗?都适合在哪些场景中使用?
6、Spark中的repartition和coalesce有什么区别?
7、谈一下你对SparkSQL和Hive的理解?
8、分析一下SparkSQL的执行流程?
第13周   综合项目:电商数据仓库之用户行为数仓
整合各个业务线数据,为各个业务系统提供统一&规范的数据出口。通过对项目的由来,需求、技术进行分析和选型,实现用户行为数据数仓开发。

课程安排:
1、项目效果展示
2、项目的由来
3、什么是数据仓库
4、数据仓库基础知识
5、数据仓库分层
6、典型数仓系统架构分析
7、技术选型
8、整体架构设计
9、服务器资源规划
10、生成用户行为数据【客户端数据】
11、生成商品订单相关数据【服务端数据】
12、采集用户行为数据【客户端数据】
13、Sqoop安装部署
14、Sqoop之数据导入功能
15、Sqoop之数据导出功能
16、采集商品订单相关数据【服务端数据】
17、用户行为数据数仓开发之ods层开发
18、用户行为数据数仓开发之ods层脚本抽取
19、用户行为数据数仓开发之dwd层开发
20、用户行为数据数仓开发之dwd层脚本抽取
21、用户行为数据数仓需求分析
22、用户行为数据数仓需求开发
23、用户行为数据数仓表和任务脚本总结
【本周思考与讨论】
1、谈一下你对数据仓库分层的理解,如果分成3层或者5层可以吗?
2、谈一下你对数仓技术选型的看法,请提出你的思路?
3、如何使用Sqoop将MySQL表数据导入Hive表中?
4、如何使用Sqoop将Hive表数据导出到MySQL表中?
5、开发数仓的时候有哪些注意事项?什么时候容易掉坑里面?
6、针对数仓脚本的开发心得,交流一下
7、什么是数据湖?谈一下你的理解?
第14周   综合项目:电商数据仓库之商品订单数仓
基于商品订单数据开发数仓,详细分析了拉链表的由来和具体实现。使用数据可视化工具Zepplin实现数据展现,使用Azkaban调度器实现任务依赖调度。

课程安排:
1、商品订单数据数仓开发之ods层和dwd层
2、商品订单数据数仓需求分析与开发
3、什么是拉链表
4、如何制作拉链表
5、【实战】基于订单表的拉链表实现
6、拉链表的性能问题分析
7、商品订单数据数仓表和任务脚本总结
8、数据可视化之Zepplin的安装部署和参数配置
9、数据可视化之Zepplin的使用
10、任务调度之Crontab调度器的使用
11、任务调度之Azkaban的安装部署
12、任务调度之Azkaban提交独立任务
13、任务调度之Azkaban提交依赖任务
14、任务调度之在数仓中使用Azkaban
15、项目优化
【本周思考与讨论】
1、使用Hive SQL可以实现数据清洗,使用Spark代码也能实现数据清洗,有什么区别吗?
2、使用Spark代码实现ods层数据清洗工作,替换掉之前的Hive SQL
3、针对用户信息表,有必要制作成拉链表吗?说出你的理由?
4、Crontab和Azkaban都能实现任务调度,应该如何技术选型呢?
5、如何使用Azkaban实现调度漏斗分析需求相关任务?
6、Hive和Impala有什么异同?谈一谈你对Impala的理解?
7、Ooize和Azkaban都是大数据中常用的任务调度工具,谈一下你对Ooize的看法?
阶段四:高频实时数据处理+海量数据全文检索方案
第15周   消息队列之Kafka从入门到小牛
Kafka是一个支持高吞吐、持久性、分布式的消息队列,非常适合海量数据的实时生产和消费,详细分析了Kafka的核心原理、代码实战、性能优化,以及Kafka的企业级应用。

课程安排:
1、什么是消息队列
2、什么是Kafka
3、Zookeeper安装部署之单机模式和集群模式
4、 Kafka安装部署之单机模式和集群模式
5、Kafka中的生产者和消费者
6、案例:QQ群聊天
7、Broker扩展内容
8、Producer扩展内容
9、Consumer扩展内容
10、Topic+Partition+Message扩展内容
11、Kafka中的存储策略
12、Kafka中的容错机制
13、Java代码实现生产者代码
14、Java代码实现消费者代码
15、消费者代码扩展
16、Consumer消费Offset查询
17、Consumer消费顺序
18、Kafka的三种语义
19、Kafka参数调忧之JVM参数调忧
20、Kafka参数调忧之Replication参数调忧
21、Kafka参数调忧之Log参数调忧
22、Kafka Topic命名小技巧
23、Kafka集群监控管理工具(CMAK)
24、实战:Flume集成Kafka
25、实战:Kafka集群平滑升级
【本周思考与讨论】
1、Kafka和ActiveMQ、RabbitMQ、RocketMQ这些MQ有什么区别?
2、如何使用Zookeeper实现分布式进程监控?原理是什么?
3、Zookeeper如何实现分布式共享锁?原理是什么?
4、如何保证Kafka数据不丢失?
5、kafka如何保证数据一致性和可靠性?
6、谈一谈你对Kafka中exactly-once语义的理解?
7、如何开发一个基于Kafka的Topic Offset变化智能监控工具?
8、如何开发一个基于Kafka的消费者待消费数据(lag)监控告警工具?
第16周   极速上手内存数据库Redis
Redis是一种面向键值对的NoSQL内存数据库,可以满足我们对海量数据的读写需求,在这里我们学习Redis中的五种常用数据类型以及Redis中的一些高级特性,达到快速上手使用。

课程安排:
1、快速了解Redis
2、Redis的安装部署
3、Redis基础命令
4、Redis多数据库特性
5、Redis常用数据类型之String
6、Redis常用数据类型之Hash
7、Redis常用数据类型之List
8、Redis常用数据类型之Set
9、Redis常用数据类型之Sorted Set
10、案例:存储高一班的学员信息
11、Java代码操作Redis之单连接
12、Java代码操作Redis之连接池
13、提取RedisUtils工具类
14、Redis高级特性之expire
15、Redis高级特性之pipeline
16、Redis高级特性之info
17、Redis持久化之RDB
18、Redis持久化之AOF
19、Redis的安全策略
20、Redis监控命令-monitor
21、Redis架构演进过程
【本周思考与讨论】
1、如何使用Redis实现一个带有优先级的先进先出队列?
2、如何使用Scala代码实现RedisUtils工具类?
3、如何使用Redis方便的获取前10名学生信息以及获取某一个学生的排名?
4、Redis中事务和管道的区别?
5、如何查看Redis中的数据使用了多少内存?
6、Redis的内存碎片问题如何解决?
第17周   Flink快速上手篇
快速了解Flink的基本原理和核心特点,掌握Flink中流数据和批数据的编程思路和代码实战,Flink中Standalone集群、ON YARN集群的安装部署,以及Flink中核心API的使用。

课程安排:
1、快速了解Flink
2、Flink Streaming程序开发
3、Flink Batch程序开发
4、Flink Standalone集群安装部署
5、Flink ON YARN的第一种方式
6、Flink ON YARN的第二种方式
7、向集群中提交Flink任务
8、Flink核心API介绍
9、DataStream API之DataSource
10、DataStream API之Transformation
11、DataStream API之分区规则介绍
12、DataStream API之分区规则的使用
13、DataStream API之DataSink
14、DataSet API之DataSource
15、DataSet API之Transformation
16、DataSet API之DataSink
17、Table API 和 SQL介绍
18、创建TableEnvironment对象
19、TableAPI和SQL的使用
20、使用DataStream创建表
21、使用DataSet创建表
22、将表转换成DataStream
22、将表转换成DataSet
【本周思考与讨论】
1、如何在Flink流计算中开发自定义Source?
2、如何在Flink流计算中开发自定义Sink?
3、如何在Flink批处理中创建自定义Source?
4、如何在Flink批处理中创建自定义Sink?
5、Flink中的哪些算子容易产生数据倾斜?
6、分析一下Flink SQL的执行流程?
第18周   Flink高级进阶之路
详细剖析Window和Time的使用,Watermark的实战应用,并行度的设置,Kafka Connector的具体应用,以及SparkStreaming的特性和使用。

课程安排:
1、Window的概念和类型
2、TimeWindow的使用
3、CountWindow的使用
4、自定义Window的使用
5、Window中的增量聚合和全量聚合
6、Flink中的Time
7、Watermark的分析
8、开发Watermark代码
9、通过数据跟踪观察Watermark
10、Watermark+EventTime处理乱序数据
11、延迟数据的三种处理方式
12、在多并行度下的Watermark应用
13、Watermark案例总结
14、并行度介绍及四种设置方式
15、并行度案例分析
16、KafkaConsumer的使用
17、KafkaConsumer消费策略设置
18、KafkaConsumer的容错
19、KafkaProducer的使用
20、KafkaProducer的容错
21、SparkStreaming的WordCount程序开发
22、SparkStreaming整合Kafka
【本周思考与讨论】
1、使用FlinkSQL对Kafka中的数据进行操作,如何通过DDL的方式集成Flink和Kafka?
2、如何在SparkStreaming中使用SparkSQL实现数据计算?
3、介绍一下 Flink中kafka 消费者的Exactly-Once是如何实现的?
4、介绍一下Flink中kafka 生产者的Exactly-Once是如何实现的?
5、介绍一下Flink的两阶段提交机制?
【福利加餐】
1、天猫双11大屏的由来
2、双11大屏需求分析及架构设计
3、双11大屏指标核心代码开发
4、双11大屏从0~1全流程跑通
5、疑难问题-课程内容典型疑难问题整理【第二弹】
6、面试题-课程内容常见面试题整理【第二弹】
理论和实践是好基友,学练结合,效果增倍!
第19周   全文检索引擎Elasticsearch
Elasticsearch是一个基于Lucene的分布式全文检索引擎,解决了海量数据下数据多条件快速复杂查询的痛点。

课程安排:
1、Elasticsearch核心原理介绍
2、常见的全文检索引擎分析
3、Solr vs Elasticsearch
4、MySQL VS Elasticsearch
5、Elasticsearch核心概念剖析
6、ES集群安装部署
7、ES集群监控管理工具-cerebro的使用
8、使用REST API的方式操作ES
9、使用Java API的方式操作ES
10、ES分词功能介绍
11、倒排索引介绍
12、分词器的作用及工作流程
13、停用词(常见的中文和英文停用词)
14、中文分词方式及常见的中文分词器
15、ES集成中文分词插件(es-ik)
16、es-ik添加自定义词库(包括热更新词库)
17、ES Search查询详解
18、searchType查询类型详解
19、ES 查询功能扩展(包括过滤、分页、排序、高亮、评分依据等)
20、ES中分页的性能问题分析
21、ES aggregations聚合统计案例应用
22、ES中的settings和mapping详解
23、ES的偏好查询(分片查询方式)分析
24、ES中的routing路由功能详解
25、ES的索引库模板和索引库别名的使用
26、ES SQL的使用
27、ES性能优化策略分析
【本周思考与讨论】
1、ES适合存储海量数据吗?在快速复杂查询和海量数据存储上如何权衡?
2、ES如何对半结构化和非结构化数据(例如:Word、Excel、Pdf等)提供快速检索功能?
3、ES中的数据Schema到底是动态生成还是手工指定,哪种方案比较好?
4、ES是否可以替换掉大数据中的Hive?
5、ES整合HBase可以解决哪种场景下的问题?
阶段五:综合项目:三度关系推荐系统+数据中台
第20周   直播平台三度关系推荐V1.0
构建直播平台用户三度关系推荐系统,详细分析数据采集/数据分发/数据存储/数据计算/数据展现等功能,完整复现互联网企业大数据项目从0~1,从1~N的开发过程。

课程安排:
1、项目介绍
2、项目需求分析
3、技术选型
4、整体架构设计
5、Neo4j快速上手使用
6、数据采集架构详细分析
7、数据来源分析
8、模拟产生数据
9、数据采集聚合
10、数据分发
11、数据落盘
12、数据计算核心指标详细分析与实现
13、三度关系推荐页面数据接入
14、三度关系推荐流程演示
15、项目代码双语支持
16、项目总结
【本周思考与讨论】
1、如果让你来设计这个项目的架构,你会如何设计?
2、如何使用SparkStreaming解决实时粉丝关注数据乱序的问题?不能借助于第三方工具。
3、如何使用Spark代码实现三度关系列表数据导出MySQL?目前课程中使用的是Sqoop实现的
第21周   直播平台三度关系推荐V2.0
分析V1.0架构存在的问题及弊端,重新设计整体架构方案,进行迭代优化,基于最新的架构方案重新实现核心功能代码,开发数据接口,优化数据传输逻辑,提高数据安全性。

课程安排:
1、现有V1.0技术架构分析
2、V2.0技术架构设计
3、数据计算核心指标详细分析
4、历史粉丝关注数据初始化
5、实时维护粉丝关注数据
6、每天定时更新主播等级
7、每天定时更新用户活跃时间
8、每周一计算最近一月主播视频评级
9、每周一计算最近一月主播视频评级
10、三度关系列表数据导出到Redis
11、数据接口定义与开发
12、项目代码双语支持
13、项目总结
【本周思考与讨论】
1、如果是你,你会如何优化此项目的架构?
2、如何使用Flink代码实现三度关系列表数据导出到Redis?目前课程中使用的是Sqoop实现的
3、针对目前Neo4j中的数据,还有哪些属性需要建立索引?
第22周   数据中台大屏
掌握一线互联网企业数据中台构建流程,了解巨头企业的项目架构,理解巨型项目的思想,掌握数据中台之数据加工总线子系统的底层实现。

课程安排:
1、什么是中台
2、中台化主要解决的问题
3、中台的延伸
4、什么是数据中台
5、数据中台演进的四个阶段
6、数据中台需要具备三大能力
7、企业级数据中台架构分析
9、目前大数据领域实时计算的现状
10、数据中台之数据加工总线介绍
11、数据加工总线架构图分析
12、开发数据加工总线计算引擎(基于SparkSQL)
13、开发数据加工总线计算引擎(基于FlinkSQL)
14、掌握如何在流式SQL中调用HTTP接口
15、支持流式SQL中的自定义函数返回多列字段
【本周思考与讨论】
1、谈一谈你对数据中台的理解?
2、课程中提供了基于Spark的通用实时计算引擎,如果想要开发基于SparkSQL+Spark Core的通用离线计算引擎的话,该如何实现?
3、课程中提供了基于Flink的通用实时计算引擎,如果想要开发基于FlinkSQL的通用离线计算引擎的话,该如何实现?

本文隐藏内容 登录 后才可以浏览

资源失效、缺失、错误 不要慌


生活不止苟且,还有我喜爱的海岸.