先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
在实际应用中,大数据处理主要包括以下三个类型:
- 复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间
- 基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
- 基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间
目前对以上三种场景需求都有比较成熟的处理框架,
- 第一种情况可以用
Hadoop的MapReduce
来进行批量海量数据处理, - 第二种情况可以
Impala
进行交互式查询, - 对于第三中情况可以用
Storm
分布式处理框架处理实时流式数据。
成本问题:
- 以上三者都是比较独立,各自一套维护成本比较高,会带来一些问题:
- 不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换
- 不同的软件需要不同的开发和维护团队,带来了较高的使用成本
- 比较难以对同一个集群中的各个系统进行统一的资源协调和分配
而Spark
的出现能够一站式平台满意以上需求
2.6 Spark生态系统组件的应用场景
应用场景 | 时间跨度 | 其他框架 | Spark生态系统中的组件 |
---|---|---|---|
复杂的批量数据处理 | 小时级 | MapReduce、Hive | Spark |
基于历史数据的交互式查询 | 分钟级 、秒级 | Impala、Dremel、Drill | Spark SQL |
基于实时数据流的数据处理 | 毫秒、秒级 | Storm、S4 | Spark Streaming |
基于历史数据的数据挖掘 | - | Mahout | MLlib |
图结构数据的处理 | - | Pregel、Hama | GraphX |
2.7 Spark组件
2.7.1 Spark Core
- 包含Spark的基本内容,包含任务调度,内存管理,容错机制等。
- Spark Core内部定义了RDDs(弹性分布式数据集)。RDDs代表横跨很多工作节点的数据集合,RDDs可以被并行的处理。
- Spark Core提供了很多APIs来创建和操作这些集合RDDs
2.7.2 Spark SQL
- Spark处理结构化数据的库。它支持通过SQL查询数据。就像HQL(Hive SQL)一样,并且支持很多数据源,像Hive表、JSON等。
- Shark是一种较老的基于Spark的SQL项目,它是基于Hive修改的,它现在已经被Spark-SQL代替了。
2.7.3 Spark Streaming
- 实时数据流处理组件,类似Storm
- Spark Streaming提供了API来操作实时流数据。
2.7.4 MLlib
- Spark 有一个包含通用机器学习功能的包,就是MLlib(machine learning lib)
- MLlib 包含了分类,聚类,回归,协同过滤算法,还包括模块评估和数据导入。
- 它还提供了一些低级的机器学习原语,包括通用梯度下降优化算法。
- 除此之外