Spark基础学习--基础介绍

1. Spark基本介绍

1.1 定义

Spark是可以处理大规模数据的统一分布式计算引擎。

1.2 Spark与MapReduce的对比

在之前我们学习过MapReduce,同样作为大数据分布式计算引擎,究竟这两者有什么区别呢?
首先我们回顾一下MapReduce的架构:MR基于HDFS实现大数据存储,基于Yarn做资源调度,且MR是基于进程处理数据的

总结一下MR的缺点:
1.MR是基于进程进行数据处理,进程相对于线程来说,在创建和销毁的过程比较消耗资源,并且数据比较慢
2.MR在运行的时候,中间有大量的磁盘IO过程。也就是磁盘数据到内存,内存到磁盘反复的读写过程
3.MR只提供了非常低级或者说非常底层的编程API,如果想要开发比较复杂的程序,需要写大量的代码

这样对比起来,我们可以总结出Spark的优点:
1.Spark是基于线程来执行任务
2.引入了新的数据结构—RDD(弹性分布式数据集),能够让Spark程序主要基于内存进行运行。内存的读写数据相对磁盘来说要快得多
3.Spark提供了更加丰富的编程API,能够非常轻松地实现功能开发

进程和线程的对比:
1.线程的创建和销毁,比进程会更加的快速,以及更加的节省资源
2.进程很难共享内存中的数据;而同个进程中的线程可以共享内存中的数据
进程和线程具体介绍可以看上一篇笔记。

2. Spark的特点

  1. 高效性–计算速度快
    • 提供了一个全新的数据结构RDD(弹性分布式数据集)
    • 基于内存计算,内存不足时可以放置在磁盘上,避免了反复磁盘读写的操作,提高了计算速度,相比于Hadoop要快100倍
    • 整个流程是基于DAG有向无环图执行方案
    • Task线程完成计算任务的执行
  2. 易用性
    支持多种开发语言,降低编程难度
  3. 通用性
    在Spark基础上,Spark还提供了Spark SQL等多个工具库,可以在一个应用中无缝使用这些库
  4. 兼容性–在任何地方都可运行
    • 支持三方工具接入
    • 支持多个操作系统

3. Spark框架模块

在这里插入图片描述

  • Spark Core API:实现了 Spark 的基本功能。包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。数据结构RDD。
  • Spark SQL:我们可以使用 SQL处理结构化数据。数据结构:Dataset/DataFrame = RDD + Schema。
  • Structured Streaming:基于Spark SQL进行流式/实时的处理组件,主要处理结构化数据。
  • Streaming(Spark Streaming):提供的对实时数据进行流式计算的组件,底层依然是离线计算,只不过时间粒度很小,攒批。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值