SPARK---Spark Core(1)

Spark概述

  1. spark是一个快速、通用的计算引擎
  2. spark特点:
    速度快,使用简单、通用、兼容好

spark与MR比较

Map Reduce Spark
数据存储结构:磁盘HDFS文件系统的split 使用内存构建分布式数据集RDD对数据进行运算和cache
编程范式:Map+Reduce,仅有两个操作,表达能力欠缺 提供了丰富的操作,使数据处理逻辑大大简化
计算中间结果落到磁盘,IO及序列化、反序列化代价大 计算中间结果在内存中,维护存取速度比磁盘高几个数量级
Task以进程方式维护,需要数秒启动时间才能启动任务 Task以线程方式维护对于小数据集读取能够达到压秒级别

spark为什么比MR快:

  1. Spark积极使用内存。MR框架中一个job只能拥有一个map task 和一个reduce task。如果业务处理逻辑复杂,一个map和一个reduce是表达不出来的,这时就需要将多个job串联起来,然后前一个job的计算结果必须写道hdfs才能交给下一个job。这样一个复杂的运算,在MR框架中会发生很多次的写入、读取操作;Spark框架则可以把多个map reduce task组合起来一起连续执行,中间计算结果不需要落盘。
  2. MR是多进程模型,而Spark Task是基于线程的。MR框架中的map task, reduce task都是jvm进程,每次启动都需要申请资源,消耗必要的时间。spark则是通过复用线程池中的线程来减少启动、关闭task所需要的系统开销。

spark系统架构

在这里插入图片描述

  • Cluster Manager: 集群资源的管理者。spark支持多种集群部署模式:Standalone 、Yarn、Mesos
  • Worker Node 工作节点,管理本地资源
  • Driver Program 运行main方法并创建了sparkContext.由cluster manager 分配资源,spark context 发送task到executor上执行
  • executor: 在工作节点上运行,执行driver发送的task,并向driver汇报计算结果

spar安装部署

  1. 本地模式 local
  2. standalone模式
  3. spark on yarn cluster/client模式:区别在于driver在什么上
  4. spark on mesos
  5. 粗粒度模式:每个应用程序的运行环境由一个driver和若干个executor组成,其中executor占用若干资源,内部可以运行多个task。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源,即使不用,最后程序运行结束后,回收这些资源。
    6.细粒度模式:鉴于粗粒度模式会造成大量的资源浪费,spark on mesos还提供了另外一种调度模式:细粒度模式,思想是按需分配。

猜你喜欢

转载自blog.csdn.net/weixin_38813363/article/details/115123676