阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Spark 集群模式概述

243次阅读
没有评论

共计 2245 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章简单回顾下 Spark 如何在集群上运行,以使其中的组件更易理解。

组件

Spark 应用在集群上以独立的进程集合运行,在你的主程序(称作驱动程序)中以 SparkContext 对象来调节。特别的,为了在集群上运行,SparkContext 可以与几个类型的集群管理器(Spark 自身单独的集群管理器或者 Mesos/YARN)相连接,这些集群管理器可以在应用间分配资源。一旦连接,Spark 需要在集群上的线程池子节点,也就是那些执行计算和存储应用数据的工作进程。然后,它将把你的应用代码(以 JAR 或者 Python 定义的文件并传送到 SparkContext)发送到线程池。最后,SparkContext 发送任务让线程池运行。

Spark 集群模式概述

关于这个架构有几个有用的地方需要注意:

  1. 各个应用有自己的线程池进程,会在整个应用的运行过程中保持并在多个线程中运行任务。这样做的好处是把应用相互孤立,既在调度方面(各个驱动调度它自己的任务)也在执行方面(不同应用的任务在不同的 JVM 上运行)。然而,这也意味着若不把数据写到额外的存储系统的话,数据就无法在不同的 Spark 应用间(SparkContext 的实例)共享。
  2. 对于潜在的集群管理器来说,Spark 是不可知的。只要它需要线程池的进程和它们间的通信,那么即使是在也支持其他应用的集群管理器(例如,Mesos/YARN)上运行也相对简单。
  3. 因为驱动在集群上调度任务,它应该运行接近到工作节点,在相同的局域网内更好。如果你想对远程的集群发送请求,较好的选择是为驱动打开一个 RPC,让它就近提交操作而不是运行离工作节点很远的驱动。

集群管理类型 系统目前支持 3 种集群管理:

  • 单例模式- 一种简单的集群管理,其包括一个很容易搭建集群的 Spark
  • Apache Mesos 模式- 一种通用的集群管理, 可以运行 Hadoop MapReduce 和服务应用的模式
  • Hadoop YARN 模式-Hadoop2.0 中的资源管理模式

其实,在 Amazon EC2(亚马逊弹性计算云)中 Spark 的 EC2 启动脚本可以很容易的启动单例模式。

给集群发布代码

给集群发布代码的一种推荐的方式是通过 SparkContext 的构造器,这个构造器可以给工作节点生成 JAR 文件列表 (Java/Scala) 或者.egg 文件和.zip 包文件(Python)。你也可以执行 SparkContext.addJar 和 addFile 来动态的创建发送文件。

监控器 每个驱动程序有一个 web UI,典型的是在 4040 端口,你可以看到有关运行的任务、程序和存储空间大小等信息。你可以在浏览器中输入简单的 url 方式来访问:http://< 驱动节点 >:4040. 监控器也可以 指导描述其它监控器信息。

任务调度

Spark 可以通过在应用外 (集群管理水平) 和应用里 (如果在同一个 SparkContext 中有多个计算指令) 资源分配。你可以在这里了解更多 任务调度的细节。

词汇表

你将在集群概念中看到下面表中总结的术语:

术语意思
应用在 Spark 上构建的程序. 由驱动程序和子执行集群.
驱动程序运行 man 函数的进程,同时也创建 SparkContext
集群管理员在获得资源集群上的扩展服务(举例. 单例模式管理员, Mesos, YARN)
工作员节点任何在集群中可以运行应用的节点
执行者

在工作员节点中为应用所启动的一个进程,它可以运行任务以及可以在内存或是硬盘中保存数据。每一个应用都有属于自己的执行者

任务一个可以给执行者发送数据的工作单元
工作一个由多任务组成的并行计算,并能从 Spark 动作中获得回应 (举例. 保存,收集); 你可以在驱动日志中看到这个术语
阶段每个工作被分为很多小的任务集合互称为阶段 (和 MapReduce 中的 map 和 reduce 阶段相似); 你可以在驱动日志中看到这个术语

————————————– 分割线 ————————————–

Spark1.0.0 部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htm

CentOS 6.2(64 位)下安装 Spark0.8.0 详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark 简介及其在 Ubuntu 下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装 Spark 集群(在 CentOS 上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark 性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark 安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

————————————– 分割线 ————————————–

Spark 的详细介绍:请点这里
Spark 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/120941.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2245字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中