Spark集群任务提交
1. 集群管理器
Spark当前支持三种集群管理方式
Standalone—Spark自带的一种集群管理方式,易于构建集群。
Apache Mesos—通用的集群管理,可以在其上运行Hadoop MapReduce和一些服务应用。
Hadoop YARN—Hadoop2中的资源管理器。
Tip1: 在集群不是特别大,并且没有mapReduce和Spark同时运行的需求的情况下,用Standalone模式效率最高。
Tip2: Spark可以在应用间(通过集群管理器)和应用中(如果一个SparkContext中有多项计算任务)进行资源调度。
2. 组件
Spark应用程序在集群上以一系列进程集合运行,通过程序(driver program)中的SparkContext对象进行卸掉。SparkContext可以与多种集群管理器(Cluster Manager)相连接,这些集群管理器可以在应用程序间分配计算资源。连到集群管理器后,Spark在急群众查找executor节点,这些节点执行运算与数据的存储。用户的应用程序(以JAR文件的形式传给SparkContext)被发送到executors。最后SparkContext发送任务tasks到executors进行执行。
Tip1: 每个Executor中以线程池的方式并行运行多个Task。意味着是应用程序之间在调度方面(每个driver调度自身的任务)和执行方面(来自不同的任务在不同的JVM上执行)相互隔离,同时,数据无法在不同的应用程序(SparkContext)之间共享,除非数据被写入到额外的存储系统。
Tip2: Spark对于底层集群管理系统来说是不可知的。只要它能够获得executor进程,并且彼此之间可以进行通信,那么很容易将其运行在一个同时支持其它应用框架的集群管理器(Mesos/YARN)上。
Tip3: 由于driver在集群上调度任务,它所在的节点应该靠近工作节点,最好位于相同的局域网中。如果想要远程地向集群发送请求,最好是为driver开启RPC,以是的就近提交操作而不是在一个距离工作节点很远的位置启动driver。
3. 提交应用程序
使用Spark的bin目录中的spark-submit脚本向集群中提交应用程序。该脚本不论cluster managers有何差异,提交作业时都有相同的接口,不必单独配置。
4. 使用spark-submit提交任务
打包好应用程序后,可以使用bin/spark-submit脚本提交应用程序。该脚本负责所需类路径(classpath)以及依赖,该脚本可以用于所有Spark支持的集群部署模式。
常用的选项:
--class: 应用程序(application)入口
--master: 集群中master节点的URL(e.g. spark://23.195.26.187:7077)
--deploy-mode: 是否将driver部署到worker节点(cluster模式)或者将driver作为一个外部的client(client模式)
application-jar:打包的包含相关依赖的jar文件的路径。该地址应该对集群可见,例如hdfs://或者file://地址。
Application-arguments:传送给应用程序main函数的参数。
Tip1: 在一个与worker机器物理上相近的机器上提交应用程序(例如Standalone模式时EC2集群上的master节点),这种情况client模式更合适。Client模式下,driver直接在spark-submit程序中启动,应用程序相关的输入输出与所在的console相联系。Client模式同样适用spark-shell中的应用程序。
Tip2: 如果一个应用程序在与那里worker集群的节点上提交(例如本地的笔记本),此时适合使用cluster模式减少driver和executer之间的网络延时。注意,当前cluster模式不适用于standalone集群,Mesos集群或Python程序。
Tip3: 可以使用 –help 选项查看spark-submit支持的所有选项。
以下示例给出常用选项:
5. 监控
每个driver程序均有一个Web界面,通常运行在4040端口,将会显示正在运行的任务的信息,executors及存储的相关信息。通过使用http://<driver-node>:4040进行访问。
6. Master地址
传送到Spark的master的地址可以使用如下格式:
7. 读取配置优先级
在代码中的SparkConf中的配置参数具有最高优先级,其次是传送spark-submit脚本的参数,最后是配置文件(conf/spark-defaults.conf)中的参数。
如果不清楚配置参数从何而来,可以使用spark-submit的—verbose选项来打印出细粒度的调度信息。
Spark集群任务提交的更多相关文章
- Spark集群任务提交流程----2.1.0源码解析
Spark的应用程序是通过spark-submit提交到Spark集群上运行的,那么spark-submit到底提交了什么,集群是怎样调度运行的,下面一一详解. 0. spark-submit提交任务 ...
- Spark 集群 任务提交模式
Spark 集群的模式及提交任务的方式 本文大致的内容图 Spark 集群的两种模式: Standalone 模式 Standalone-client 任务提交方式 提交命令 ./spark-subm ...
- Spark集群模式&Spark程序提交
Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...
- 向Spark集群提交任务
1.启动spark集群. 启动Hadoop集群 cd /usr/local/hadoop/ sbin/start-all.sh 启动Spark的Master节点和所有slaves节点 cd /usr/ ...
- Spark集群的任务提交执行流程
本文转自:https://www.linuxidc.com/Linux/2018-02/150886.htm 一.Spark on Standalone 1.spark集群启动后,Worker向Mas ...
- Spark集群之yarn提交作业优化案例
Spark集群之yarn提交作业优化案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.启动Hadoop集群 1>.自定义批量管理脚本 [yinzhengjie@s101 ...
- Eclipse提交代码到Spark集群上运行
Spark集群master节点: 192.168.168.200 Eclipse运行windows主机: 192.168.168.100 场景: 为了测试在Eclipse上开发的代码在Spa ...
- 将java开发的wordcount程序提交到spark集群上运行
今天来分享下将java开发的wordcount程序提交到spark集群上运行的步骤. 第一个步骤之前,先上传文本文件,spark.txt,然用命令hadoop fs -put spark.txt /s ...
- Docker中提交任务到Spark集群
1. 背景描述和需求 数据分析程序部署在Docker中,有一些分析计算需要使用Spark计算,需要把任务提交到Spark集群计算. 接收程序部署在Docker中,主机不在Hadoop集群上.与Spa ...
随机推荐
- go语言中将函数作为变量传递
在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用,通过下面这个例子我们可以看到test ...
- Django 框架
MVC 框架和MTV框架 (了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- 2014-10-28 NOIP模拟赛
Porble 1时间与空间之旅(tstrip.*) 题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship ...
- 洛谷P3110 [USACO14DEC]驮运Piggy Back
P3110 [USACO14DEC]驮运Piggy Back 题目描述 贝西和她的妹妹艾尔斯白天在不同的地方吃草,而在晚上他们都想回到谷仓休息.聪明的牛仔,他们想出了一个计划,以尽量减少他们在步行时花 ...
- 了解HTTP协议和TCP协议
HTTP(超文本传输协议),互联网上应用最为广泛的一种网络协议.所有的www文件都必须遵守这个标准.HTTP是一个客户端和服务端请求和应答的标准(TCP):客户通过浏览器发起一个到服务器上指定端口的H ...
- 下拉刷新,上拉加载功能--dropload.js的使用
这段时间工作太忙了,没时间更新博客内容,在这段时间,也学习到了不少新的知识.今天先整理一下dropload.js的使用方法吧,这个是在为项目中使用过的插件,很好用,但是真正用到项目中还是会有一些小小的 ...
- django视图 CBV 和 FBV
目录 视图 CBV 和 FBV 什么是视图? FBV function based view 基于函数的视图 CBV class based view 基于类的视图 小技巧 CBV 如何获取页面请求类 ...
- SAP中对于获取订单的状态
在SAP中对于如何获取订单的状态,提供了至少两个函数,分别是 STATUS_READ 和 STATUS_TEXT_EDIT.下面简单介绍这两个函数 1.STATUS_READ 改函数的实现原理大 ...
- Java Servlet图片上传至指定文件夹并显示图片
在学习Servlet过程中,针对图片上传做了一个Demo,实现的功能是:在a页面上传图片,点击提交后,将图片保存到服务器指定路径(D:/image):跳转到b页面,b页面读取展示绝对路径(D:/ima ...
- 一行命令将ubuntu升级到最新版本
zzupdate 是一个开源的命令行程序,通过将几个更新命令组合到一个命令中,使得将 Ubuntu 桌面和服务器版本升级到更新版本的任务变得容易一些. 将 Ubuntu 系统升级到更新的版本并不是一项 ...