Spark基础

一、Spark介绍

1. Spark是一个分布式计算框架,和MapReduce的作用一样,完成数据的计算。

2. 与MapReduce的区别:

(1)spark是基于内存计算,会将中间结果存放在内存,方便后续计算的使用,而MapReduce会将中间结果存储在磁盘上。
  • 内存数据的读写速度要比磁盘快得多,所以Spark的计算速度要比MapReduce快;
  • Presto也是基于内存计算的,Presto不适合海量数据处理,而且不能创建库表。Spark对海量数据在内存上的计算做了优化,内存不足时会保存在磁盘上。
(2)Spark的计算任务是由线程完成的。MapReduce的计算任务是由进程完成的。
  • 线程切换计算任务的速度比进程切换计算任务速度快。
  • MapReduce进程计算任务的中间结果传递给reduce进程。

3. Spark和MapReduce的计算思想是一样的,分布式计算框架思想——“分而治之”。

4. Spark是用Scala语言编写完成,MapReduce则是Java语言开发,Scala言的本质是对Java语言的二次开发,底层还是依赖于Java的JVM、修改调整Java语言的缺点等,形成Scala。

5. Spark是Apache基金会下的顶级开源项目,即有专门团队开发、维护该项目。

二、Spark特性

1. 高效性

  • 基于内存计算
  • 线程完成计算任务执行

2. 易用性

  • 支持多种语言开发(Python,Java,Scala,SQL,R),降低了学习难度
  • 机器学习方向,最终还是Python

3. 通用性

  • 支持多种计算方式
    ①SQL计算(离线计算)【MapRedudce只支持】
    ②图计算
    ③机器学习计算
    ④流式数据计算(实时仓库中使用)【Spark可以】
  • 支持多种开发方式
    ①交互式开发
    ②脚本式开发(通过编写代码文件完成程序运行)

4. 兼容性

(1)支持第三方工具接入
  • 计算时读写数据时,存储工具有
    hdfs
    kafka
    hbase
  • 资源调度服务
    yarn
    stanalone(Spark自带的)
  • 高可用
    zookeeper
(2)支持多种操作系统
  • Linux
  • Windows
  • Mac

三、Spark架构(熟悉)

  1. 工具层:可以使用哪些工具去操作Spark
  2. 核心层:PDD执行计算
  3. 资源调度服务:yarn、standalone、配置文件位置调度方式
  4. 存储层:数据读写机写入,比如hdfs、hbase、kafka

四、Spark部署方式(熟悉)

1. Local模式部署,即本地模式部署

使用一台服务品进行部署,—股用于测试代码,在本地能运行成功的代码在集群下也能运行

2. Cluster模式部署,即集群模式部署

  • 集群需要多台服务器
  • 多台服务器的资源需要统一管理,使用资源调度服务
    Standalone
    Yarn

3. 云服务

使用云服务供应商提供的服务,比如阿里云

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值