由于工作需要,这边需要学习大数据,先从spark开始,主要是从blibli的黑马程序员那里学习的,下面将记录重点
1. Spark简介
Spark是一款分布式内容计算的同意分析引擎,其特点就是对任意类型的数据进行自定义计算。
2. Spark VS Hadoop
尽管Spark相对于hadoop而言具有较大优势,但spark并不能完全替代hadoop
- 在计算层面,Spark相比较MR(MapReduce)有巨大优势,但纸巾仍有许多计算工具基于MR构架。
- Spark仅做计算,而Hadoop生态圈不仅有计算(MR)也有存储(HDFS)和资源管理制度(YARN),HDFS和TARN仍是许多大数据体系的核心架构
3. Spark特点
快
- Spark处理数据时,可以将中间处理结果数据存储到内存中
- Spark提供了非常丰富的算子(API),可以做到复杂任务在一个Spark程序中完成
简单运用
编程比较简单
通用性强
提供了很多模块、同时也有多个代码API
运行方式
支持多种运行方式,包括在Hadoop和Mesos上,也支持Standalone的独立运行模式,同时也可以运行在云Kubernetes上。对于数据源而言,Spark支持从HDFS、Hbase、Cassandra以及Kafka等多种途径获取数据。
4. SPark框架模块
- Spark Core:Spark的核心,Spark功能均由Spark Core模块提供,Spark COre以RDD为数据抽象,提供Python、Java、Scale、R语言的API,可以变成金星海量离线数据批处理计算。
- SparkSQL:基于Spark Core之上,提供结构化数据的处理模块。SparkSQL支持SQL,提供离线计算场景。同时基于SparkSQL,Spark提供了StructureStreaming模块,可以以SparkSQL为基础,进行数据的流式计算
- SparkStreaming:以SparkCore为基础,提供数据的流式计算功能。
- MLlib:以SparkCore为基础,进行机器学习计算,内置了大量的机器学习库和API算法。方便用户以分布式计算的模式进行机器学习计算。
- GraphX:以SparkCore为基础,进行图计算,提供了大量的图计算API,方便用于以分布式计算模式进行图计算。
5. Spark运行模式
下面列举几种本地模式
- 本地模式(单机):一个独立的进程,通过其他内部的多个线程来模拟整个Spark运行时的环境
- Standalone模式(集群):SPark中的各个角色以独立进程的形式存在。并组成Spark集群环境
- Hadoop YARN模式(集群):Spark中的各个角色运行在YARN的容器内部,并组成Spark的集群环境
- Kubernetes模式(容器集群):Spark中的各个角色运行在Kubernetes的容器内部,并组成Spark集群环境
- 云服务模式(运行在云平台上):
参考:https://www.bilibili.com/video/BV1Jq4y1z7VP?p=3&vd_source=4f8aa8eaabf77c7c85e5cab32d59ed0c