【甘道夫】Spark1.3.0 Submitting Applications 官方文档精华摘要

引言

由于工作需要,即将拥抱Spark,曾经进行过相关知识的学习,现在计划详细读一遍最新版本Spark1.3的部分官方文档,一是复习,二是了解最新进展,三是为公司团队培训做储备。


欢迎转载,请注明出处:

http://blog.csdn.net/u010967382/article/details/45062381


原文URL:http://spark.apache.org/docs/latest/submitting-applications.html

该文档重点介绍如何将编写好的Spark应用程序提交到Spark集群中运行。

首先需要将应用程序的所有依赖都打包到应用程序jar中。

注意,无需将Spark和Hadoop作为依赖包加入集合jar中,因为在运行时Cluster Manager会提供这些系统级的依赖。

一旦程序打包好了,就可以通过bin/spark-submit脚本将应用程序提交给Spark集群。

bin/spark-submit脚本格式如下:

./bin/spark-submit \

--class <main-class>

--master <master-url> \

--deploy-mode <deploy-mode> \

--conf <key>=<value> \

... # other options

<application-jar> \

[application-arguments]

一些常用的选项包括:

  • --class: 应用程序的入口类,包含main方法;
  • --master: 集群中Master节点的URL(e.g. spark://23.195.26.187:7077) ,该参数一言难尽,后面有详细说明;
  • --deploy-mode决定你的driver程序的运行位置,cluster模式是运行在worker节点上,client模式是运行在集群外部。默认是client模式;
  • --conf: 任意Spark的基础属性配置,用key=value格式;
  • application-jar: 指向应用程序jar包的路径,路径必须全局可见,要么是一个hdfs路径,要么是一个所有node本地都有的文件路径;
  • application-arguments: 应用程序接收的参数。

关于--deploy-mode参数

  • client模式:一个常见的部署策略是从一台网关机器提交你的应用程序,这台机器和你的worker机器物理上很接近(例如集群中的Master节点)。在这样的场景下,client模式就非常适合。在client模式中,driver程序直接在spark-submit进程中启动,spark-submit进程对于集群来说就是一个客户端程序。应用程序的输入和输出都会通过控制台。这样的话,client模式就尤其适合包含REPL(“读取-求值-输出”循环,英语:Read-Eval-Print
    Loop,简称REPL)的应用程序,比如Spark shell。
  • cluster模式:另一个经典场景,cluster模式,如果你的应用程序从一台离workder机器较远的机器提交(例如从你的笔记本电脑上提交),通常会通过cluster模式来最小化driver和executors之间的网络延迟。注意,cluster模式现在尚未支持Mesos集群或者Python应用程序。

关于--master参数

Master URL Meaning
local Run Spark locally with one worker thread (i.e. no parallelism at all).
local[K] Run Spark locally with K worker threads (ideally, set this to the number of cores on your machine).
local[*] Run Spark locally with as many worker threads as logical cores on your machine.
spark://HOST:PORT Connect to the given Spark standalone cluster master. The port must be
whichever one your master is configured to use, which is 7077 by default.
mesos://HOST:PORT Connect to the given Mesos cluster. The port must be whichever one your is configured to use, which is
5050 by default. Or, for a Mesos cluster using ZooKeeper, use mesos://zk://....
yarn-client Connect to a YARNcluster in client mode.

The cluster location will be found based on the HADOOP_CONF_DIR variable.

yarn-cluster Connect to a YARNcluster in cluster mode.

The cluster location will be found based on HADOOP_CONF_DIR.

spark-submit脚本将默认读取conf/spark-defaults.conf中的配置属性,我们可以在conf/spark-defaults.conf文件中做好基础属性的配置,就无需在spark-submit脚本中重复指定了,例如,如果spark.master属性已经设置了,你就可以不用在调用spark-submit脚本时再次传入spark.master参数。

时间: 2024-10-13 18:29:19

【甘道夫】Spark1.3.0 Submitting Applications 官方文档精华摘要的相关文章

【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详解

环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载,请注明来源***    http://blog.csdn.net/u010967382/article/details/38709751 到以下地址下载安装包 http://mirrors.cnnic.cn/apache/hive/stable/apache-hive-0.13.1-bin.tar.gz 安装包解压到

【甘道夫】Oozie-4.0.0-CDH5.2.0 安装部署

引言 Oozie是Hadoop生态系统中的工作流控制组件,可以调度MR,Hive,Shell等各类任务,并配置复杂的工作流程. 今天介绍如何安装部署,使用的是单机测试环境. 欢迎转载,请注明来源: http://blog.csdn.net/u010967382/article/details/41355953 下载解压 下载安装过程需要的相关文件: oozie4.0.0安装包 http://archive.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.2.0.

【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详细解释

环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载.请注明来源***    http://blog.csdn.net/u010967382/article/details/38709751 到下面地址下载安装包 http://mirrors.cnnic.cn/apache/hive/stable/apache-hive-0.13.1-bin.tar.gz 安装包解压到

【甘道夫】用贝叶斯文本分类测试打过1329-3.patch的Mahout0.9 on Hadoop2.2.0

引言 接前一篇文章<[甘道夫]Mahout0.9 打patch使其支持 Hadoop2.2.0> http://blog.csdn.net/u010967382/article/details/39088035, 为Mahout0.9打过Patch编译成功后,使用贝叶斯文本分类来测试Mahout0.9对Hadoop2.2.0的兼容性. 欢迎转载,转载请注明出处: http://blog.csdn.net/u010967382/article/details/39088285 步骤一:将20ne

【甘道夫】Hadoop2.2.0环境使用Sqoop-1.4.4将Oracle11g数据导入HBase0.96,并自动生成组合行键

目的: 使用Sqoop将Oracle中的数据导入到HBase中,并自动生成组合行键! 环境: Hadoop2.2.0 Hbase0.96 sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz Oracle11g jdk1.7 Ubuntu14 Server 这里关于环境吐槽一句: 最新版本的Sqoop1.99.3功能太弱,只支持导入数据到HDFS,没有别的任何选项,太土了!(如有不同意见欢迎讨论给出解决方案) 命令: sqoop import --connect

【甘道夫】Hadoop2.2.0 NN HA详细配置+Client透明性试验【完整版】

引言: 前面转载过一篇团队兄弟[伊利丹]写的NN HA实验记录,我也基于他的环境实验了NN HA对于Client的透明性. 本篇文章记录的是亲自配置NN HA的详细全过程,以及全面测试HA对客户端访问透明性的全过程,希望对大家有帮助. 实验环境: Hadoop2.2.0的4节点集群,ZK节点3个(ZK节点数最好为奇数个),hosts文件和各节点角色分配如下: hosts: 192.168.66.91 master 192.168.66.92 slave1 192.168.66.93 slave2

【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.zip Apache Ant(TM) version 1.8.4 compiled on May 22 2012 java version "1.7.0_45" 參考文章: http://kangfoo.u.qiniudn.com/article/2013/12/build-hadoop2x

【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse插件

目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.zip Apache Ant(TM) version 1.8.4 compiled on May 22 2012 java version "1.7.0_45" 参考文章: http://kangfoo.u.qiniudn.com/article/2013/12/build-hadoop2x

【甘道夫】Win7环境下Eclipse连接Hadoop2.2.0

准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查看详细日志 log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLa