文章目录
- 1.Spark概述
- Spark就是基于MR开发
- 分布式计算
- 分布式存储
- 分布式传输
- 集群中心化
- 集群去中心化
- Spark集群中心化
- 框架与系统
- 引擎Driver
- 2.Spark核心模块
- 3.spark和MR
- 开发语言上
- 处理方式
- Spark能否代替MR?
- 4.Spark运行模式
- 部署Spark
- 部署方式
- local模式
1.Spark概述
Spark是基于内存的一种快速,统一,可扩展的大数据分析计算引擎;
kafka 是分布式的消息传输
MR 分布式计算
HDFS 分布式存储
Spark 分布式计算
Spark就是基于MR开发
分布式概念
--单机:一个app应用到,单进程,单节点,一般不应用到生产环境,资源太少。
--伪分布式:多进程,单节点;受制于单节点,生产环境不会使用。
--完全分布式:多进程,多节点;生产环境使用。
分布式计算
分布式计算会将数据进行切分,然后发送各个节点,各个节点分别进行计算最终得到资源进行整合
分布式存储
将文件进行切分
分布式传输
将数据切分分为不同的区进行传输
集群中心化
一个集群有一个NameNode来统一管理节点,客户端连接到一个集群的NameNode即可连接到集群的所有节点
风险并存,NameNode宕机,其他节点不可用;解决方式就是备份
集群去中心化
集群任何节点都可以作为中心节点,例如Kafka
spark,yarn采用集群中心化
kafka采用去中心化策略
Spark集群中心化
与传统不同,其没有备份。其次它干活的是Exector
管理者是Driver
框架与系统
系统:完整的计算机程序(HDFS,Kafka)
框架:不完整的计算机程序(MR,Spark),核心功能已经开发完毕;
Spark需要根据用户的业务逻辑来具体使用,其提供一个入口给开发人员 ,业务代码(jar包)通过In传到Spark的操作叫做Submit
引擎Driver
spark内部的核心功能
2.Spark核心模块
主流讲解Spark Core,Spark Streaming ,Spark SQL
第一行表示是内置模块
MR离线,Spark Streaming实时
实时的延迟是以毫秒为单位
本次课程,主要学习Spark SQL,Spark Streaming
3.spark和MR
开发语言上
Spark是Scala开发
MR是java开发
MR创建大量的对象,资源占用较多
Scala适合大量的数据处理
处理方式
MR基于磁盘,进行单一计算
Spark基于内存,执行复杂计算
Spark能否代替MR?
反问:内存是否无限大?内存不是无限大,那就还是需要往磁盘读写,还是需要MR操作;
你快是快,但是收到内存制约
4.Spark运行模式
部署Spark
–单机模式 资源是单节点
–集群模式 资源是多节点提供
部署Spark其实指的就是Spark的程序逻辑谁提供的资源中执行
如果资源是yarn提供的,那么就称之为Yarn部署环境
部署环境是xx提供,那就叫xx模式
--yarn提供称之为yarn部署环境
--spark提供称之为spark部署环境也叫standalone
目前的模式是计算和资源调度分开
工作生产环境,主要采用 yarn + spark
(spark on yarn)模式
部署方式
1.local
2.standalone
3.yarn
4.Mesos
local模式
local模式就是运行在一台计算机上的模式,通常就是用于练手和测试