spark之12:集群模式概述
2017-08-11 14:32
351 查看
spark之12:集群模式概述
@(SPARK)[spark, 大数据]英文原文地址:https://spark.apache.org/docs/latest/cluster-overview.html
spark之12集群模式概述
组件
集群管理器的类型
提交应用
监控
作业调度
术语
Application
Application jar
Driver program
Cluster manager
Deploy mode
Worker node
Executor
Task
Job
Stage
集群模式概述
本文档简单介绍了spark如何在集群中运行,它使得你更容易理解spark相关的组件。关于如何在一个集群中运行spark,请参考application submission guide 。
组件
spark应用以多个进程的形式运行于一个集群中,它使用你所定义的主程序(或者叫驱动程序)中的SparkContext这个对象来协调。当运行于集群时,SparkContext可以运行于多种的集群管理器中(包括spark自带的standalone集群,以及mesos和yarn),它们都被用于在不同的应用间分配资源。当spark应用连接到了集群管理器后,(1)首先它将从集群中的节点获取执行器(executor),这些执行器就是用来运行计算或者存储数据的进程(2)然后,spark会将你的应用代码(jar包或者python文件)发送给执行器(3)最后,SparkContext将具体的任务(task)发送给执行器运行。关于上面的架构,有几点需要注意的:
1、每一个应用都拥有它自己独立的执行器进程(executor processes),这些进程在应用的整个生命周期中保持运行,且一般会同时运行多个线程。这有利于不同应用的分离,但同时,它也意味着数据不能在不同的spark应用(或者说不同的SparkContext)中共享,除非你先将数据输出到外部存储中。
2、spark独立于底层的cluster manager,只要保证它能够获取到executor processes,并且这些进程之间能互相通信。这就很容易将应用运行于不同的cluster manager,如mesos/yarn等,甚至这些cluster manager还能运行其它类型的应用。
3、驱动程序必须在整个生命周期中监听并接受执行器的连接 (e.g., see spark.driver.port and spark.fileserver.port in the network config section)。因此驱动程序对于工作节点来说,必须可以通过网络访问的。
集群管理器的类型
目前spark支持以下几种集群管理器:Standalone – spark自带的集群管理器,可以很方便的用于创建集群。
Apache Mesos – 一个通过的资源管理器,它可用于运行MR与一些其它应用。
Hadoop YARN – hadoop2.x引入的资源管理器。
此外,spark的EC2 launch scripts 使得你可以很方便的在亚马逊EC2上运行独立集群。
提交应用
可以通过spark-submit向任意类型的集群提交应用。 application submission guide 详细介绍了如何向spark集群提交应用。监控
每一个驱动程序都有一个web UI(一般在4040端口),它展示了应用的信息,包括运行的任务,执行器以及存储的使用情况等。在一个浏览器中打开 http://:4040 就可访问到这个UI,monitoring guide详细介绍了其它监控项。作业调度
spark在不同应用间以及应用内部提供资源分配的控制, job scheduling overview详细介绍了这些内容。术语
下面总结了你在使用spark中需要用到的术语:Application
用户创建的spark应用,它由一个驱动程序和多个执行器组成。Application jar
jar包包括了用户的spark应用,有时候,用户会创建一个超级包,它包括了这个包的所有依赖,但是不管如何,用户Jar包不应该包括hadoop和spark的library,它们会在运行时自动加载。Driver program
运行应用main函数的进程,同时它也用于创建SparkContext。Cluster manager
一个用于获取集群资源的外部服务,如 ( standalone manager, Mesos, YARN)Deploy mode
用于区分在哪里运行驱动程序,在cluster模式中,会在集群内运行驱动程序,而在client模式中,在集群外运行驱动程序。Worker node
集群中可以运行应用代码的节点Executor
某个应用运行于worker node的进程,它运行多个任务(task),并且在内存或者磁盘中保存数据。每一个应用都有自己的一个或者多个executorsTask
在executor中运行的工作单元Job
由多个task组成的并行计算,你会在driver的log中看到这个词Stage
每一个job会被切分为一个更小的任务集合,这些任务集群被称为stage,它们之间互相依赖(如MR中的map和reduce),你会在driver的log中看到这个词。一般而言,以宽依赖作为依据分割stage。相关文章推荐
- spark集群模式概述
- Spark集群模式概述
- Spark集群模式概述
- Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN
- Spark集群模式概述
- (转) Spark 集群模式概述
- Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN
- Spark on YARN集群模式作业运行全过程分析
- Spark集群模式&Spark程序提交
- 第30课:集群运行模式下的Spark Streaming日志和Web监控台实战演示彻底解密
- Spark1.2.1集群环境搭建——Standalone模式
- Local模式下开发第一个Spark程序并运行于集群环境
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop伪分布模式并运行Wordcount示例(1)
- Spark集群独立模式HA
- Spark2.1.0 + CarbonData1.0.0+hadoop2.7.2集群模式部署及使用入门
- Spark源码阅读笔记:Standalone模式集群核心角色代码浅析
- 如何使用Spark的local模式远程读取Hadoop集群数据
- Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门
- Spark官方文档——独立集群模式(Standalone Mode)
- 第31课:集群运行模式下的Spark Streaming调试和难点解决实战经验分享