这是我参与「第四届青训营」笔记创作活动的的第15天
前言:在青训营学习了一个月,这一个月确实收获了不少东西,每个老师都有自己的风格,尽可能地让我们学到一些东西,今天整理一下我认为比较重要的课程笔记,形成一个大体框架,方便以后继续学习。
一、开发利器: SQL
SQL Optimizer解析
负责生成 SQL 语句的有效执行计划的数据库引擎组件。查询优化器的目标是找到执行 SQL 查询的最佳执行计划,执行计划就是查询树,它由一系列物理操作符组成,这些操作符按照一定的运算关系组成查询的执行计划。
主要介绍了基于规则的优化器(RBO)和基于代价的优化器(CBO)
二、计算(流/批/OLAP)
流/批/OLAP一体的Flink引擎介绍
一个Flink集群,主要包含以下两个核心组件:
- JobManager (JM) :负责整个任务的协调工作,包括:调度task、 触发协调Task做Checkpoint、协调容错恢复等;
- Dispatcher:接收作业,拉起JobManager来执行作业,并在JobMaster挂掉之后恢复作业;
- JobMaster:管理个 job的整个生命周期,会向ResourceManager申请slot,并将task调度到对应TM上;
- ResourceManager:负责slot资源的管理和调度,Task manager拉起之后会向RM注册;
- TaskManager(TM) :负责执行一个DataFlowGraph的各个task以及datastreams的buffer和数据交换。
Exactly Once语义在Flink中的实现
- At_Most_Once: 至多一次,表示一条消息不管后续处理成功与否只会被消费处理一次
- At_Least_Once:至少一次,表示一条消息从消费到后续的处理成功,可能会发生多次
- Exactly_Once: 精确一次,表示一条消息从其消费到后续的处理成功,只会发生一次
流计算中的Window计算
Windows分类:
- Tumble Window (滚动窗口)
窗口划分:每个key单独划分,每条数据只会属于一个窗口
窗口触发:Window结束时间到达的时候次性触发
- Sliding Window (滑动窗口)
窗口划分:每个key单独划分,每条数据可能会属于多个窗口
窗口触发:Window结束时间到达的时候一次性触发
- Session Window (会话窗口)
窗口划分:每个key单独划分,每条数据可能会属于多个窗口
窗口触发:Window结束时间到达的时候一次性触发
Spark原理与实战
spark是一个用来实现快速,通用的集群计算平台。spark适用于各种各样原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。通过在一个统一的框架下支持这些不同的计算,spark使我们可以简单而低耗地把各种处理流程整合在一起。
主要讲了SparkCore原理解析和SparkSQL 原理解析
大数据Shuffle原理与实践
在大数据场景下,数据shuffle表示了不同分区数据交换的过程,不同的shuffle策略性能差异较大。 目前在各个引擎中shuffle 都是优化的重点,在spark框架中,shuffle 是支撑spark进行大规模复杂 数据处理的基石。
shuffle优化使用的技术栈:Netty Zero Copy
Presto架构原理与优化介绍
交互式处理引擎: Presto, Clickhouse, Doris
Presto最初是由Facebook研发的构建于Hadoop/HDFS系统之上的PB级交互式分析引擎, 其具有如下的特点:
- 多租户任务的管理与调度
- 多数据源联邦查询
- 支持内存化计算
- Pipeline式数据处理
三、存储(大数据/NoSQL/数据湖/数据流)
HDFS原理与应用
HDFS: Hadoop Distributed File System
功能特性:
- 分布式
- 容错
- 高可用
- 高吞吐
- 可拓展
- 廉价
HDFS高可用和高扩展机制分析
HDFS作为大数据离线分析场景的核心组件,高可用和高扩展性是架构设计的重中之重。高可用确保了业务能稳定运行,HDFS上存储的数据随时可以访问。高扩展性确保了HDFS能存储的数据量能随着资源投入无限扩展下去,业务发展不被基础组件拖累。字节跳动HDFS依然在持续迭代,在元数据扩展性、数据治理与调度、数据生态体系、单机存储引擎、云上存储等方向依然大有可为。
深入浅出Hbase实战
HBase是个开源的 NoSQL分布式数据库,是Apache软件基金会顶级项目之一。参考Google BigTable的设计,对稀疏表提供更高的存储空间使用率和读写效率。
采用存储计算分离架构。
- 存储层基于HDFS存储数据,提供容错机制和高可靠性:
- 计算层提供灵活快速的水平扩展、负载均衡和故障恢复能力;
从Kafka到Pulsar:数据流演进之路
Kafka架构:
- Zookeeper
- Broker
- Controller 选举
- Controller 作用
- Coordinator
四、资源和调度
走进Yarn资源管理和调度
Yarn是Hadoop中的四大组件之一。Hadoop 的四大组件:common、HDFS、MapReduce、YARN。Yarn是在Hadoop2.x新增的组件,只负责资源的调度,MapReduce则负责计算。Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce相当于运行于操作系统之上的应用程序。 核心模块:
- Resource Manager
- Node Manager
五、数据应用
用户数据分析与最佳实践
我们学了很多有关大数据技术方面的原理,这些技术最终还是为了帮助企业做数据分析,更好的为企业提供有效的决策依据,帮助企业实现目标,本节课程讲的是用户数据分析及实践。
数据分析流程:
- 明确目的
- 经验猜想
- 数据准备
- 数据分析
- 产出报告和优化建议
- 验证
- 全量实施和总结复盘
总结
通过一个月的学习,收获了很多大数据方面的知识,我本身不是大数据专业的,只是对大数据专业比较感兴趣,课堂上跟着老师学习,课下提前预习,我不会的东西实在是太多太多了,可能一个专业名词我都得去网上找资料半天理解,但是学会了一点东西我觉得都是值得的,尤其是对自己不熟悉的领域里学习是一件很享受的过程,一个月的大数据之旅就到此结束了,感谢字节给我这次学习的机会,让我重新认识了自己,需要努力的地方还很多,希望有朝一日真的从事大数据进字节,哈哈!