Spark1.1.1官网文档翻译3任务提交

来源:互联网 发布:高级ios程序员招聘 编辑:程序博客网 时间:2024/05/17 02:22

提交任务

Spark-submit是bin目录下的用来在集群上启动应用程序的方法。它可以使Spark使用统一的接口管理ClusterManager,使得你不必为每一个程序进行单独部署

 

打包应用的依赖

如果你的代码依赖于其他的项目,你将需要把应用程序分发到集群上面,为此,创建一个打包文件(或者更高级的“JAR”文件)包含代码和它所依赖的。使用SBT或者Maven进行加载。创建打包文件的时候,Spark和Hadoop的文件不需要打包,因为这些是在ClusterManager上面的设置。一旦你拥有了一个包文件,你可以调用bin/spark脚本来运行它。

Python,你可以使用--.py文件参数作为Spark的补充,.py.zip.egg等文件都可以在你的程序中进行使用。如果你有多个.py文件,我们建议包装秤.zip或者.egg

 

使用Spark-submit提交申请

一旦应用程序捆绑在了一起,可以使用bin/spark-submit脚本提交,这个脚本会为Spark设置classpath和它的依赖,可以支持不同的ClusterManager以及他们对Spark的管理。

./bin/spark-submit \

--class <main-class>

--master <master-url>

--deploy-mode <deploy-mode>

--conf <key>=<value>

...#other options

<application-jar>

[application-arguments]

 

一些常用的选项

--class:你程序的入口(org.apache.spark.example.SparkPi)

--master:集群master的url(spark://23.195.26.187:7077)

--deploy-mode:你的部署是在工作节点(cluster)还是外部节点(client)默认client*

--conf:键值对模式的任意属性,值包含空格引用"key=value"

application-jar:jar包和你的程序依赖的地址,这个地址必须在集群上面可见的,比如hdfs://path或者file://path(当前节点)

application-argument:主要方法的参数,如果有的话

 

*一个部署策略是提交你的程序到一个作为入口的物理机器(比如Ec2集群的Master)在这种安装模式下,客户端模式是很合适的。在客户端模式下,driver直接在spark-submit过程中发送,与输入输出直接连接到控制台应用,涉及到REPL(读取-求值-输出循环,例如Spark Shell)

另外,如果你的应用程序从远离工作机器(例如在你的笔记本电脑上)它是常见的使用集群模式以减少drivers和执行者之间的网络延迟。请注意集群模式当前不支持standaloneclusters,Mesos cluster或者Python applications

对于python应用程序,只需要在<application-jar>中添加一个py文件,jar文件,或者egg文件即可,py文件的搜索路径是--py-files

几个例子

#本地运行程序在8核上面

./bin/spark-submit \

--classorg.apache.spark.example.SparkPi \

--master local[8] \

/path/to/example.jar

100

 

#运行在spark 独立集群

./bin/spark-submit \

--classorg.apache.spark.examples.SparkPi \

--master spark://207.184.161.138:7077\

--executor-memory 20G \

--total-executor-cores 100 \

/path/to/example.jar \

1000

 

#运行在Yarn集群

export HADOOP_CONF_DIR=XXX

./bin/spark-submit \

--classorg.apache.spark.example.SparkPi \

--master yarn-cluster \#可以使用yarn-client启用client模式

--executor-memory 20G \

--num-executors 50 \

/path/to/examples.jar \

1000

 

#运行在集群的Python程序上

./bin/spark-submit \

--master spark://207.184.161.138:7077\

examples/src/main/python/pi.py \

1000

 

Master地址

SparkMasterURL有以下几个选择形式

 

Local

本地一个工作者的线程运行(不并行运行)

Local[k]

局部K个工作者运行Spark(理想状态下,设置为你机器的核数)

Local[*]

以尽可能多的工作者线程运行,作为核心逻辑运行在机器上

spark://HOST:PORT

连接到特定独立集群的主机,端口默认是7077

mesos://HOST:PORT

连接特定的mesos集群,端口必须配置为特定的,默认是5050或者,为使用zookeeper,采用mesos://zk://....

yarn-client

使用客户端模式连接到Yarn集群,集群位置将从HADOOP_CONF_DIR变量中寻找

Yarn-cluster

使用集群端模式连接到Yarn集群,集群位置将从HADOOP_CONF_DIR变量中寻找

 

从文件中加载配置

使用spark-submit脚本可以加载默认的Spark配置,从属性文件中传递给你的应用,默认情况下,它会在Spark目录中conf/spark-default.conf中。更多信息,参考Sparkconfiguration

 

http://spark.apache.org/docs/latest/configuration.html#loading-default-configurations

 

加载默认配置,这样可以避免Spark提交一部分确认的属性,例如,如果spark-master设置了一个属性,你可以安全的把它忽略。在一般情况下,SparkConf拥有最高的优先级,然后提交spark-submit补充一些缺省的文件。

 

如果有不清楚的配置选项,可以使用Spark的调试信息--verbose选项

 

先进的依赖性管理

使用spark-submit程序jar文件以及--jars包含的选项将自动转移到集群,Spark使用以下的url方式允许不同形式的文件传播

file:绝对的路径 file:/URI是由driver的HTTP文件服务器的服务,每一个执行者吧文件从driver拖动到HTTP服务器上面。

HDFS:HTTP:HTTPS:FTP:这些文件同样是从URI拖下文件

local:local:从本地运行,默认每个文件作为工作节点的本地文件存在,这意味着没有网络IO会发生,以及大的文件或者包,push到每个工作者,或者通过NFS共享,GlusterFS等。

请注意,包和文件为每个sparkcontext的复制到工作目录中的各执行器节点,这样可以使用大量空间,随着时间的推移,需要清理。Mesos是自动清理,并与Spark独立自动清理,可以配置spark.worker.cleanup.appDataTtl属性

Python等效,.py文件可以用来分发,.egg.zip和.py库用于执行

更多的信息

一旦你部署你的应用,集群模式概述介绍参与分布式执行的组件,以及如何监控和调试应用程序。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子做题总是马虎怎么办 孩子做题总是眼高手低怎么办 小孩说幼儿园老师不喜欢他怎么办 初中学生了不喜欢读书怎么办 小孩吐怎么办给揉哪里 8岁了不爱写字怎么办呢 8岁了不会写字怎么办呢 高考做题时犯各种粗心错误怎么办 孩子做题不认真读题怎么办 孩子不爱学习怎么办有什么办法 小孩字写的不好怎么办 孩子的字写得丑怎么办 一年级孩子生字默不出来怎么办 5岁宝宝不爱写字怎么办 三年级小孩不自觉做作业怎么办 一年级的孩子不爱写字怎么办 一年级孩子不爱写作业怎么办 一年级的小孩不爱写字怎么办 小孩儿写字做作业磨蹭怎么办 孩子不学习成绩差不写作业怎么办 儿童4岁不会写字怎么办 小孩读中班还不会写字怎么办 幼儿园中班孩子不写字怎么办 小孩吃多了呕吐怎么办 一岁宝宝老便秘怎么办 4周岁半幼儿便秘怎么办 没胃口不能吃辣怎么办 九个月宝宝缺锌怎么办 宝宝4 5天不吃饭怎么办 16个月宝宝不肯吃饭怎么办 儿童不吃饭很瘦怎么办 小孩吃饭吃的少怎么办 宝宝突然晚上不睡觉怎么办 l岁宝宝吃多了怎么办 3个月婴儿厌食怎么办 11个月婴儿厌食怎么办 7个月的婴儿厌食怎么办 小孩记忆不好读书记不住怎么办 9岁儿童不爱睡觉怎么办 6岁儿童不爱吃饭怎么办 2岁半宝宝不吃饭怎么办