赞
踩
Spark是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。
Spark特点
Spark相对于Hadoop的优势
Hadoop已经成为大数据技术的事实标准,但是它仍然有很多缺陷,如:MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因此只适用于离线批处理的应用场景。
Hadoop的缺点:
Spark的优点:
Spark最大的特点是将计算数据、中间数据都保存在内存中,大大减少了IO开销。Spark不能替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型。它可以借助Yarn实现资源调度管理,借助HDFS实现分布式存储。
Spark基本概念
Spark结构设计
Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个工作节点上负责具体任务的执行进程(Executor)。集群资源管理器可以是Spark自带的资源管理器,也可以是Yarn等资源管理框架。
Spark各自概念之间的关系
在Spark中,一个应用(Application)由一个任务控制节点(Driver)和若干个作业(Job)组成。一个作业由多个阶段(Stage)构成,一个阶段由多个任务(Task)组成。当执行一个应用时,任务控制节点会向集群管理器(Cluster Manager)申请资源,启动Executor,并向Executor发送应用程序代码和文件,然后再Executor上执行任务,运行任务结束后,执行结果会返回给任务控制节点,或者写到HDFS或者其他数据库中。
Executor的优点
Spark运行基本流程
1 每个应用都有属于自己的Executor进程,并且该进程在应用程序期一直驻留。Executor进程以多线程方式运行任务,减少了多进程任务频繁的启动开销,使得任务执行变得非常高效和可靠。
2 Spark运行过程与资源管理器无关,只要能够获取Executor进程并保持通信即可
3 Executor上有一个BlockManager存储模块,类似于键值存储系统(把内存和磁盘共同作为存储设备),在处理迭代计算任务时,不需要将中间结果写入到HDFS等文件系统,而是直接放到这个存储系统上,后续有需要就可以直接读取;在交互式查询的场景下,也可以把表提前缓存到这个存储系统上,提高IO性能。
4 任务采用了数据本地性和推测执行等优化机制。数据本地性是尽量将计算移到数据所在的节点上进行,即"计算向数据靠拢",因为移动计算比移动数据所占的网络资源要少得多。Spark采用了延迟调度机制,可以在更大的程度上实现执行过程优化。比如,拥有数据的节点当前正被其他的任务占用,那么在这种情况下是否需要将数据移动到其他的空闲节点呢?答案是不一定,因为,如果经过预测发现当前节点结束当前任务的时间,要比移动数据的时间要少,那么调度就会等待,直到当前节点可用。
Spark的部署模式
Spark支持三种典型集群部署模式,即standalone、Spark on Mesos和Spark on Yarn;在企业实际开发环境中,针对不同的应用场景,可用采用不同的部署应用方式,或者采用Spark完全替代原有的Hadoop架构,或者Spark和Hadoop一起部署的方式。
Spark三种部署方式
Spark应用程序在集群上部署运行时,可用由不同的组件为其提供资源管理调度服务(资源包含CPU,内存)。比如,可用使用自带的独立集群管理器(standalone),或者使用Yarn,也可以使用Mesos。因此,Spark包括三种不同类型的集群部署方式,包括standalone,Spark on Yarn和Spark on Mesos。
由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架Yarn之上。因此,可以在Yarn之上统一部署。这些不同的计算框架统一运行在Yarn中,可以有以下的好处
此博客借鉴于饥渴的小苹果的笔记
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。