Spark版本:1.6.2 简介:本文档简短的介绍了spark如何在集群中运行,便于理解spark相关组件。可以通过阅读应用提交文档了解如何在集群中提交应用。

组件

spark应用程序通过主程序的SparkContext对象进行协调,在集群上通过一系列独立的处理流程运行。
为了便于迁移,SparkContext可以支持多种类型的集群管理器(spark standalone、Yarn、Mesos)。当与集群管理器创建连接后,spark在集群的节点上面申请executors,用于处理应用程序中的计算任务和数据存储。然后executors将一个用的代码发送到各个executors,最后SparkContext发送tasks到各个executor执行。

关于spark架构有一些内容需要指出:

  • 每个应用都有自己的executor,他们会在应用程序的整个生命周期内一直存活,这样有利于应用间调度和executor的隔离。但这样也就意味着不同应用之间只能通过外部存储系统进行沟通
  • Spark对于底层的集群管理系统并不知晓,他们能在不同集群上进行资源申请,并提供一致的接口进行通信和计算处理。
  • 在应用的整个生命周期内,Driver程序需要监听和接受executors的信息,因此driver程序对于worker节点来说要可以通过网络寻址定位的。
  • 由于Driver程序调度集群上面的任务,因而driver最好与worker在同一个网段运行,若远程执行最好开通RPC。

集群类型

目前Spark支持以下三种集群管理:

  • Standalone —— spark自带的集群管理器
  • Apache Mesos —— 一种可以运行Hadoop Mapreduce的通用集群管理
  • Hadoop Yarn —— Hadoop2的集群管理 除此之外,Spark Ec2脚本可以在Amazon EC2上面运行spark standalone模式。

提交应用

通过spark-submit在集群上提交应用程序

监控

每个驱动程序都有一个web UI进行监控,默认端口是4040,展示了正在运行的task、executors和storage usage。通过http://<driver-node>:4040可以对应用程序进行监控。监控界面简介

作业调度

Spark可以通过代码进行应用内和应用间的集群管理级别的资源分配。作业监控进行了详细介绍。

相关术语

下面对集群中常用的术语进行了介绍:

术语 解释
Application 用户基于Spark创建的应用程序,包含一个Driver程序和集群上一系列的executor
Application jar 用户程序的jar包,需要包含第三方依赖,但不应该包含spark库,这些应该在集群环境中运行时提供
Driver program 运行main函数、创建SparkContext的程序
Cluster manager 申请集群资源的额外的管理器
Deploy mode 区分Driver运行的位置,若是cluster则驱动程序在集群内的节点上运行,若是client则驱动程序在集群外节点运行
Worker node 集群中可以进行计算的节点
Executor 应用在工作节点上的执行器,运行程序同时存储数据。每个应用有自己的executor
Task Executor内部执行计算的单元
Job 由Action引起的多个task并行的计算单元,可以在driver日志查看
Stage 每个Job被划分为task,然后根据情况合并为stage

Spark 官方文档(2)——集群模式的更多相关文章

  1. 转载-lvs官方文档-LVS集群中的IP负载均衡技术

    章文嵩(wensong@linux-vs.org) 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN ...

  2. 转载-lvs官方文档04-LVS集群的负载调度

    LVS集群的负载调度 章文嵩 (wensong@linux-vs.org) 2002 年 5 月 本文主要讲述了LVS集群的IP负载均衡软件IPVS在内核中实现的各种连接调度算法.针对请求的服务时间变 ...

  3. W3School Redis教程(安装/基本操作/高级操作/命令/官方文档/官方集群教程)

    说明:Redis有自身的客户端连接软件,也可以使用Telnet进行连接操作. 来自W3School的Redis教程,基本上涵盖了从安装到状态监控的教程. W3School:https://www.gi ...

  4. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  5. spark 官方文档(1)——提交应用程序

    Spark版本:1.6.2 spark-submit提供了在所有集群平台提交应用的统一接口,你不需要因为平台的迁移改变配置.Spark支持三种集群:Standalone.Apache Mesos和Ha ...

  6. 【译】Spark官方文档——编程指南

    本文翻自官方博客,略有添加:https://github.com/mesos/spark/wiki/Spark-Programming-Guide Spark发指南 从高的面看,其实每一个Spark的 ...

  7. 《Spark 官方文档》在Mesos上运行Spark

    本文转自:http://ifeve.com/spark-mesos-spark/ 在Mesos上运行Spark Spark可以在由Apache Mesos 管理的硬件集群中运行. 在Mesos集群中使 ...

  8. spark api之一:Spark官方文档 - 中文翻译

    转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linking with Spark) 3 初始化Spark(Initi ...

  9. Spark官方文档——独立集群模式(Standalone Mode)

    除了部署在Mesos之上, Spark也支持独立部署模式,包括一个Spark master进程和多个 Spark worker进程.独立部署模式可以运行在单机上作为测试之用,也可以部署在集群上.如果你 ...

随机推荐

  1. grub2配置显示系统选择菜单(ubuntu 14.04)

    背景: 有一次遇到过安装的新的内核后,ubuntu并没有显示选择内核的grub菜单,按shift键才会弹出,有时候shift按得不准就又进入了不是想进入的那个系统. 配置方法: sudo vim /e ...

  2. python优先队列,队列和栈

    打印列表的疑问 class Node: def __str__(self): return "haha" print([Node(),Node()]) print(Node()) ...

  3. Mysql操作语句

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准SQL数值数据类型. 这 ...

  4. PRINCE2随笔

    首先要说的是,我这篇体会是针对一定的背景的,不能算是一种通用的管理方式,只能是我自己的经验总结,能给大家平常的管理提供一点思路,我就很满足了. 先说说背景,我所在公司做的是大型桌面应用软件,简单点说就 ...

  5. 3sum问题的解决

    其实一开始想错了,把这个问题想难了,导致没有思路,现在好了很多. 题目: Given an array S of n integers, are there elements a, b, c in S ...

  6. 记一周cdqz训练

    #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.com/w ...

  7. Django models 操作高级补充

    Django models 操作高级补充 字段参数补充: 外键 约束取消 ..... ORM中原生SQL写法: raw connection extra

  8. 未知宽度的div水平居中

    淘宝分页: div{position:relative; left:50%; float:left;}   p{position:relative; left:-50%;}

  9. ubuntu修改163软件源

    cd /etc/apt cat sources.list sudo su root sudo echo '' > sources.list nano sources.list 复制163软件源 ...

  10. Jenkins 安装FAQ

    1.对路径的访问被拒绝,如: 解决办法:以管理员模式进入DOS命令窗口,参考Jenkins安装中的第4步: 2.服务不能启动,提示:   解决办法:启动Windows Service(InstallU ...