2019独角兽企业重金招聘Python工程师标准>>>

集群模式概述

本文简要地概述一下Spark是如何在集群上运行的,方便理解Spark以及相关的组件。如何向集群提交应用程序参阅应用程序提交指南 。

组件

Spark应用程序在集群上运行由一系列的独立的进程组成,进程相互之间由主程序(称为驱动程序 )SparkContext协调。而且,集群上运行SparkContext可以连接多种类型的 集群管理器 (Spark的独立集群管理器或mesos/yarn),这些集群管理器负责为应用程序分配资源。 一旦连接,Spark获得集群中的节点的执行器 , 这些执行器负责为应用程序运行计算以及存储数据。 接下来,它将发送您的应用程序代码(传递给SparkContext的JAR或Python文件)到执行器。 最后,SparkContext发送 任务给执行器。

下面是一些需要注意的关于这个架构有用的东西:

1.     每个应用程序都有自己的执行器进程,这些进程将贯穿整个应用程序的生命周期以及在多个线程中运行任务。不管是在调度端(每个驱动安排自己的任务)和执行器端(不同应用程序的任务运行在不同的jvm), 隔离应用程序都有好处,。然而,这也意味着数据不能跨不同的Spark(SparkContext实例)共享,除非将数据先存放到外部存储系统再共享。

2.     底层集群管理器对Spark是透明的。只要能获得执行器进程及它们之间能相互通信,这让Spark在集群管理器上运行相对容易,即使该集群管理器还支持其他应用程序(例如mesos/yarn)。

3.     驱动程序在它的生命周期必须监听和接受连接的执行器的输入 (请参阅 spark.driver.port和spark.fileserver.port网络配置章节 )。 因此,驱动程序在网络中必须能被工作节点寻址找到。

4.     因为驱动在集群上调度任务,它应该在工作节点附近运行,最好在同一局域网内。如果你想发送请求给远程集群,最好让驱动程序开一个RPC,并且让它在工作节点附近提交操作而不是直接在远离工作节点的地方提交操作。

集群管理器类型

系统目前支持三个集群管理器:

·         Standalone – Spark自带的一个简单的集群管理器,使用它设置集群很容易。

·         Apache Mesos  – 普通的集群管理器,它还可以运行Hadoop MapReduce和服务应用程序。

·         Hadoop yarn  Hadoop 2的资源管理器。

此外,Spark的 EC2启动脚本 可以很方便地在Amazon EC2上启动一个独立集群。

提交的应用程序

使用 spark-submit脚本可以把应用程序提交任何类型的集群。参见 应用程序提交指南 。

监控

每个驱动程序都有一个web UI,通常在端口4040上,显示运行任务、执行器和存储使用的信息。 http:// < driver-node >:4040 在web浏览器中直接打开即可。监控指导 描述其他监视选项。

作业调度

Spark给出了跨应用程序(在集群管理的层次)和应用程序内(如果多个计算发生在同一SparkContext)的资源分配控制。 参见作业计划概述 。

术语表

下面的表列出了将来会用到的一些集群概念的术语:

术语

意义

Application(应用程序)

在Spark上构建的用户程序。 由在集群上的driver program(驱动程序)executors

(执行器)组成

Application jar

(应用程序jar)

包含用户的Spark的应用程序jar包。在某些情况下,用户将需要创建一个包含应用程序和

所有它的依赖项的 “uber jar”,但请注意,千万不要包括Hadoop或Spark库,这些在运行时将

被添加。

Driver program(驱动程序)

运行应用程序的main()函数和创建SparkContext

Cluster manager(集群管理器)

获取集群上资源的外部服务(如独立管理器,Mesos,YARN)

Deploy mode(部署模式)

区别在于驱动程序在哪运行。 在“集群”模式下,框架在集群内启动驱动。

在“客户端”模式下,提交者启动在集群外启动驱动程序。

Worker node(工作节点)

在集群中运行应用程序代码的任何节点

Executor(执行器)

在工人节点上启动应用程序的进程,并负责运行任务和在内存或磁盘存储数据.

每个应用程序都有自己的执行器。

Task(任务)

工作单元,将被送到执行器

Job(工作)

包含多个任务的并行计算,这些任务获得Spark动作的响应(如save(保存), collect(收集))\

您将看到这个词被用在驱动的日志中。

Stage(阶段)

每个工作被分成较小的相互依赖的任务阶段 (类似于MapReduce的map和reduce阶段),

您将看到这个词被用在驱动的日志中。

转载于:https://my.oschina.net/newlife111/blog/415376

Spark集群模式概述相关推荐

  1. Spark 集群模式概述

    Spark 集群模式概述 本文档简要概述了Spark如何在群集上运行,以使您更容易理解所涉及的组件.通读应用程序提交指南, 以了解有关在集群上启动应用程序的信息. 组件 Spark应用程序在群集上作为 ...

  2. spark之12:集群模式概述

    spark之12:集群模式概述 @(SPARK)[spark, 大数据] 英文原文地址:https://spark.apache.org/docs/latest/cluster-overview.ht ...

  3. spark集群测试小案例

    一.local模式: 测试自带计算的圆周率案例 之所以会报错,是因为从网上copy过来的文件名不对:所以才会报错,以及因此而导致的错误: 正确的如下: 二.独立的Spark集群模式:使用7077端口( ...

  4. Spark 原理 —— 从 akka 到 spark 集群的启动

    1. actor 到 akka Actor 是一种消息并发模型,基于事件模型的并发机制. Scala 的 Actor 类似于 Java 中的多线程编程,不同在于: Scala 的 Actor 设计的初 ...

  5. Zeppelin-在Flink和Spark集群的安装

    2019独角兽企业重金招聘Python工程师标准>>> 该教程主要面向Zeppelin的入门者.不需要太多的关于 Linux, git, 或其它工具的基础知识.如果你按照这里的方法逐 ...

  6. 2021年大数据Spark(八):环境搭建集群模式 Standalone HA

    环境搭建-Standalone HA 高可用HA Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单 ...

  7. 2021年大数据Spark(六):环境搭建集群模式 Standalone

    目录 环境搭建-Standalone 前言 Standalone 架构 ​​​​​​​集群规划 修改配置并分发 修改slaves ​​​​​​​分发到其他机器 修改spark-env.sh 集群启动和 ...

  8. Zookeeper源码分析:集群模式启动概述

    参考资料 <<从PAXOS到ZOOKEEPER分布式一致性原理与实践>> zookeeper-3.0.0 Zookeeper概述 Zookeeper是一个分布式的,开放源码的分 ...

  9. spark集群运行模式理解

    第一种模式: 本地集群测试单机模式: 不启动任何集群,即Local模式 第二种模式: 第三种模式: yarn-Client模式 访问8088端口 这篇文章解决了一是否调用 集群,并不是程序内部要求的: ...

最新文章

  1. 迁移学习:如何使用TensorFlow对图像进行分类
  2. SpringMVC 如何实现将消息的websocket
  3. NC:MetaSort通过降低微生物群落复杂度以突破宏基因组组装难题
  4. DeepMind推出分布式深度强化学习架构IMPALA,让一个Agent学会多种技能
  5. 怎么使用oracle的加权平均数_GPA不足,怎么短期有效提升?快来收获100%录取的秘诀!...
  6. Scapy 伪造网络数据包
  7. OpenGL创建窗口
  8. java dog类型_java泛型中?和T有什么区别?
  9. 注册中心—组件—Consul
  10. 小程序外接web-view坑------alert显示域名
  11. python爬虫实战:《星球大战》豆瓣影评分析
  12. 步步为营:因为数据库正在使用,所以无法获得对数据库的独占访问权
  13. 学习笔记12--Apollo开发平台
  14. linux分区修复命令,在Linux下成功修复分区表出错
  15. linux系统的优点
  16. 教你如何查询车辆出险记录
  17. Firefox火狐浏览器如何本地备份导入、导出密码
  18. 日系插画学习笔记(三):光影与结构
  19. python 等腰三角形的性质,相似三角形性质判定().ppt
  20. gmm聚类python_GMM-实现聚类的代码示例

热门文章

  1. WINDOWS故障修复台 免去重装的烦恼
  2. Silverlight 游戏开发:可重用的拖拽控件
  3. Objective-C KVC
  4. SSDT – Error SQL70001 This statement is not recognized in this context-摘自网络
  5. TMG2010 之创建访问规则
  6. Oracle表分区和索引分区汇总
  7. centos6 安装 mantisbt-1.2.8 —— (1) VMware Workstation 12 Pro 虚拟机安装步骤详解(window 10 系统)
  8. 语音合成(文字转语音)工具大全
  9. 模块的使用,包,及程序开发规范
  10. 4、linux网络编程--套接字的介绍