页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

Spark 应用概述

Spark 应用程序模型

Apache Spark 被公认为在 Apache Hadoop 群集上用于通用数据处理的 MapReduce 框架的 继承者。像 MapReduce 应用一样,每个 Spark 应用是一个运行用户提供的代码来计算结果的独立的计算框架。像 MapReduce Job 一样,Spark 应用可以使用多个主机上的资源。然后,Spark 相比 MapReduce 有许多优点。

在 MapReduce 中,最高级别的计算单元是一个 Job。一个 Job 加载数据,应用一个 Map 函数,shuffles it,应用一个 Reduce 函数,然后将数据写入持久化存储中。在 Spark 中,最好级别的计算单元是一个 application。一个 Spark 应用能够用于单独的批处理 Job,一个有许多 Job 的交互式 session,或者长期的 Server 来不断的满足请求。Spark Job 可以包含不止一个 map 和 reduce。

MapReduce 为每个 Task 启动一个进程,与此相反,Spark 应用可以有很多进程运行在它之上即使它没有运行任何 job。此外,多个 Task 能够运行在相同的 Executor 之内。两者结合以使任务非常快速的启动时间与内存中的数据一样,作为结果在数量级上比 MapReduce 拥有更快的性能。

Spark 执行模型

Spark 引用执行涉及到像 driver,executor,task,job 和 stage 这样的运行时概念。为了编写快递以及资源高效的 Spark 应用理解这些概念是至关重要的。

在运行时,Spark 应用映射到了一个单独的 dirver 进程以及分散在群集的主机中的一组 executor 进程。

Driver 进程管理 job flow 和调度 task 以及在整个应用运行时是可用的。代表性的,这个 driver 进程与 client 进程是相同的被用于初始化 job,即使当运行在 YARN 上时,driver 进程也能够运行在群集中。在交互式模式中,shell 它自身就是 driver 进程。

executor 负责执行 work,以 task 的形式,与您存储任何您缓存的数据一样。Executor 生命周期取决于是否 动态分配 被启用了。Executor 有一些 solt 用于运行 task,在它(Executor)的整个生命周期内会同时运行多个。

调用一个 action 时,内部的 Spark 应用触发启动一个 job 来完成它。Spark 校验 action 上的 dataset(数据集)以及规划执行计划。执行计划组装 dataset 转换成 stage。一个 stage 是一个运行相同代码,每个在一份数据不同的子集上的任务的集合。

 

  • 无标签