Spark框架
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。本专栏包括Apache Spark简介以及生态圈概述、Spark环境搭建、Spark编程模型、Spark核心原理、Spark存储原理和Spark运行架构等模块
Master.TJ
https://github.com/fengruotj
展开
-
Spark详解(十三):Spark Streaming 运行架构分析
1. 运行架构SparkStreaming的主要功能包括流处理引擎的流数据接收与存储以及批处理作业的生成与管理,而Spark核心负责处理Spark Streaming发送过来的作用。Spark Streaming分为Driver端和Client端,运行在Driver端为Streaming Context实例。该实例包括DStreamGraph和JobScheduler(包括ReceiveTrac...原创 2019-02-25 15:44:34 · 590 阅读 · 0 评论 -
Spark详解(十二):Spark Streaming原理和实现
1 简介SparkStreaming是Spark核心API的一个扩展,具有高吞吐量和容错能力的实时流数据处理系统,可以对多种数据源(如Kdfka、Flume、Twitter、Zero和TCP 套接字)进行类似Map、Reduce和Join等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。Spark Streaming在内部处理的机制原理是:先接受实时流的数据,并根据一定的时间...原创 2019-02-25 14:56:33 · 3801 阅读 · 0 评论 -
Spark详解(十一):Spark运行架构原理分析
1. Spark 运行架构总体分析1.1 总体介绍Spark应用程序的运行架构基本上由三部分组成,包括SparkContext(驱动程序)、ClusterManger(集群资源管理器)和Executor(任务执行进程)组成SparkContext负责与Cluster Manager通信,进行资源的分配和监控等,负责作业的执行的全生命周期管理。ClusterManger提供了资源的分配和...原创 2019-02-24 19:28:56 · 875 阅读 · 0 评论 -
Spark详解(十):SparkShuffle机制原理分析
1. Spark Shuffle简介在Hadoop的MapReduce框架中Shuffle是连接Map和Reduce的桥梁,Map的输出要用到Reduce中必须经过Shuffle这个环节。由于Shuffle阶段涉及到磁盘的读写和网络传输,因此Shuffle的性能高低直接影响到整个程序的性能和吞吐量。Spakr Shuffle定义:Shuffle在中文的意思是“洗牌、混洗”的意思,在MapRe...原创 2019-02-24 14:44:08 · 1124 阅读 · 0 评论 -
Spark详解(九):Spark存储原理分析
1. 整体架构Spark存储介质包括内存和磁盘等。Spakr的存储采用了主从模式,也就是Master/Slave模式,整个存储模块使用了前面介绍的RPC的通信方式。其中,Master负责整个应用程序运行期间的数据块元数据的管理和维护,而Slave一方面负责本地数据块的状态信息上报给Master,另一方面接受从Master传来的执行命令,如获取数据块状态、删除RDD/数据块等命令。在每个Slave...原创 2019-02-23 17:31:47 · 1282 阅读 · 0 评论 -
Spark详解(八):Spark 容错以及高可用性HA
所谓容错就是一个系统的部分出现错误的情况还能够持续地提供服务,不会因为一些错误而导致系统性能严重下降或出现系统瘫痪。在一个集群中出现机器故障、网络问题等常态,尤其集群达到较大规模后,很可能较频繁的出现机器故障等不能进行提供服务,因此分布性集群需要进行容错设计。1. Executor容错Spark支持多种运行模式,这些运行模型中的集群管理器会为任务分配运行资源,在运行资源中启动Executor,...原创 2019-02-23 12:56:07 · 1752 阅读 · 1 评论 -
Spark详解(六):Spark集群资源调度算法原理
1. 应用程序之间在Standalone模式下,Master提供里资源管理调度功能。在调度过程中,Master先启动等待列表中应用程序的Driver,这个Driver尽可能分散在集群的Worker节点上,然后根据集群的内存和CPU使用情况,对等待运行的应用程序进行资源分配。默认分配规则是有条件的FIFO,先分配的应用程序会尽可能多的获取满足条件的资源,后分配的应用程序只能在剩余资源中再次筛选。如...原创 2019-02-22 17:13:15 · 4019 阅读 · 0 评论 -
Spark详解(七):SparkContext源码分析以及整体作业提交流程
1. SparkContext源码分析在任何Spark程序中,必须要创建一个SparkContext,在SparkContext中,最主要的就是创建了TaskScheduler和DAGScheduler,以及SparkUI...// Create and start the schedulerval (sched, ts) = SparkContext.createTaskSchedule...原创 2019-02-22 15:45:31 · 409 阅读 · 0 评论 -
Spark详解(五):Spark作业执行原理
Spark的作业和任务调度系统是其核心,它能够有效地进行调度的根本原因是对任务的划分DGG和容错。下面我们介绍一下相关术语:作业(Job):RDD中由行动操作所生成的一个或者多个调度阶段调度阶段(Stage):每个作业会因为RDD之间的依赖关系拆分成多组任务集合,称为调度阶段,也叫做任务集合(TaskSet)。调度阶段的划分是由DAGScheduler俩划分的,调度阶段由ShuffleMap...原创 2019-02-22 12:07:08 · 1731 阅读 · 0 评论 -
Spark详解(四):Spark组件以及消息通信原理
1. Spark核心基本概念Application(应用程序):指用户编写的Spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点之上的Executor代码,在执行过程中由一个或多个作业组成。Driver(驱动程序):Spark中的Driver即运行上述Application的main函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Sp...原创 2019-02-21 17:49:20 · 1507 阅读 · 0 评论 -
Spark详解(三):Spark编程模型(RDD概述)
1. RDD概述RDD是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去...原创 2019-02-20 20:45:10 · 865 阅读 · 0 评论 -
Spark详解(二):Spark完全分布式环境搭建
1. 前言本文搭建了一个由三节点(master、slave1、slave2)构成的Spark完全分布式集群,并通过Spark分布式计算的一个示例测试集群的正确性。本文将搭建一个支持Yarn的完全分布式环境2. Spark架构Spark 使用的是主从架构体系3. Apache Spark环境搭建需要配置的文件有 slaves spark-env.sh spark-defaults.con...原创 2019-02-20 17:10:50 · 2082 阅读 · 0 评论 -
Spark详解(一):Spark及其生态圈概述
1. Spark简介Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark 运行速度快易用性好通用性强随处运行1.1 Spark和MapReduce的比较Spark继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷,具体如下:Spark把中间数据...原创 2019-02-20 16:16:08 · 3259 阅读 · 2 评论