最近刚学习spark,用spark-submit命令提交一个python脚本,一开始老报错,所以打算好好整理一下用spark-submit命令提交python脚本的过程。先看一下spark-submit的可选参数

1.spark-submit参数

--master MASTER_URL:设置集群的主URL,用于决定任务提交到何处执行。常见的选项有

local:提交到本地服务器执行,并分配单个线程

local[k]:提交到本地服务器执行,并分配k个线程

spark://HOST:PORT:提交到standalone模式部署的spark集群中,并指定主节点的IP与端口

mesos://HOST:PORT:提交到mesos模式部署的集群中,并指定主节点的IP与端口

yarn:提交到yarn模式部署的集群中

--deploy-mode DEPLOY_MODE:设置driver启动的未知,可选项如下,默认为client

client:在客户端上启动driver,这样逻辑运算在client上执行,任务执行在cluster上

cluster:逻辑运算与任务执行均在cluster上,cluster模式暂时不支持于Mesos集群或Python应用程序

--class CLASS_NAME :指定应用程序的类入口,即主类,仅针对java、scala程序,不作用于python程序

--name NAME :应用程序的名称

--jars JARS:用逗号隔开的driver本地jar包列表以及executor类路径,将程序代码及依赖资源打包成jar包

--packages:包含在driver 和executor 的 classpath 中的 jar 的 maven 坐标

--exclude-packages:为了避免冲突 ,指定的参数--package中不包含的jars包

--repository:附加的远程资源库(包含jars包)等,可以通过maven坐标进行搜索

--py-files PY_FILES:逗号隔开的的.zip、.egg、.py文件,这些文件会放置在PYTHONPATH下,该参数仅针对python应用程序

--files FILES:逗号隔开的文件列表,这些文件将存放于每一个工作节点进程目录下

--conf PROP=VALUE:指定spark配置属性的值,格式为PROP=VALUE, 例如 -conf spark.executor.extraJavaOptions="-XX:MaxPermSize=256m"

--properties-file FILE:指定需要额外加载的配置文件,用逗号分隔,如果不指定,默认为 conf/spark-defaults.conf

--driver-memory MEM :配置driver内存,默认为1G

--driver-java-options:传递给driver的额外选项

--driver-library-path:传递给driver的额外的库路径

--driver-class-path:传递给driver 的额外的类路径,用--jars 添加的jar包会自动包含在类路径里

--executor-memory MEM :每个 executor 的内存,默认是1G

当'--master'参数设置为Standalone,‘--deploy-mode’参数设置为cluster时,如下选项可以设置:

  --driver-cores NUM:driver使用的内核数,默认为1

当'--master'参数设置为Standalone或者Mesos,‘--deploy-mode’参数设置为cluster时,如下选项可以设置:

  --supervise:如果设置了该参数,driver失败是会重启

  --kill SUBMISSION_ID:如果设置了该参数,则会杀死指定SUBMISSION_ID的driver进程

  --status SUBMISSION_ID:如果设置了该参数,则请求返回指定SUBMISSION_ID的driver的状态

当'--master'参数设置为Standalone或者Mesos时,如下选项可以设置:

   --total-executor-cores NUM:设置集群中所有工作节点上executor使用的内核总数

当'--master'参数设置为Standalone或者YARN时,如下选项可以设置:

  --executor-cores NUM:每个executor使用的核数

当'--master'参数设置为YARN时,如下选项可以设置:

  --driver-cores NUM :当--deploy-mode为cluster时,driver使用的内核数,默认为1

  --queue QUEUE_NAME :将任务提交给哪个YARN队列,默认为YARN的默认队列

  --num-executors NUM:设置启动的executor数量,默认为2

  --archives ARCHIVES :被每个executor提取到工作目录的档案列表,用逗号隔开

2.提交python脚本

在提交firstApp.py脚本时,使用如下指令

$ spark-submit \
--master local[2] \
--num-executors 2 \
--executor-memory 1G \
--py-files /home/hadoop/Download/test/firstApp.py

结果报如下错误“Error: Cannot load main class from JAR file:/home/hadoop/Download/spark-2.1.1-bin-hadoop2.7/bin/master”,其中:/home/hadoop/Download/spark-2.1.1-bin-hadoop2.7/bin/master与hadoop安装路径相关,虽然python脚本没有主类这一说,但是可以猜测到该错误是由于找不到函数入口导致,我在这里找打了一些答案,--py-fiels参数是用来添加应用程序所依赖的python文件的,我们要提交的应用程序可以直接采用如下方式提交,这样就没有报错了

$ spark-submit \
--master local[2] \
--num-executors 2 \
--executor-memory 1G \
/home/hadoop/Download/test/firstApp.py

spark-submit提交python脚本过程记录的更多相关文章

  1. [Java/Python] java调用python脚本问题记录

    Java调用Python的的两种方式 1.Runtime private static String call_python(String input_argv) { String python_py ...

  2. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  3. python 脚本运行时报错: AttributeError: 'module' object has no attribute ***

    最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError: 'module' object has no attrib ...

  4. 【原创】大数据基础之Spark(1)Spark Submit即Spark任务提交过程

    Spark2.1.1 一 Spark Submit本地解析 1.1 现象 提交命令: spark-submit --master local[10] --driver-memory 30g --cla ...

  5. Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)

    今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...

  6. 基于binlog来分析mysql的行记录修改情况(python脚本分析)

          最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎 ...

  7. spark下使用submit提交任务后报jar包已存在错误

    使用spark submit进行任务提交,离线跑数据,提交后的一段时间内可以application可以正常运行.过了一段时间后,就抛出以下错误: org.apache.spark.SparkExcep ...

  8. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  9. Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)

    说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明.功能简介 去除软件右上角激活按钮 去除导出时激活弹窗 去除导出PDF文 ...

随机推荐

  1. MeteoInfoLab脚本示例:利用比湿、温度计算相对湿度

    利用比湿和温度计算相对湿度的函数是qair2rh(qair, temp, press=1013.25),三个参数分别是比湿.温度和气压,气压有一个缺省值1013.25,因此计算地面相对湿度的时候也可以 ...

  2. linux centos 05

    centos7安装mariadb 1.yum  得配置yum源,配置阿里云的 两个 yum源  ,阿里云的yum源中,会有 mariadb的软件包 阿里云的yum仓库中,mariadb版本如下 mar ...

  3. linux centos 04

    1.python的虚拟环境 1.将当前机器上的解释器作为一个 本地,复制出的很多歌 虚拟解释器 物理机上的 本体解释器 ,什么事也不做 分身1:  解释器1:虚拟环境1     运行django  1 ...

  4. 【源码项目】C语言编程之火车票管理系统!(最强代码)

    大学计算机软件技术基础课程设计任务书 一.题目: 火车票信息管理系统: 二.目的与要求 : ● 目的培养学生综合利用C++语言进行程序设计的能力, ● 培养学生的编程能力.用计算机解决实际问题的能力, ...

  5. BASH提示符颜色、显示返回值,终端标题显示当前目录与正在执行的命令

    BASH的PS1变量控制提示符相关的东西,善用它可以让BASH用起来舒服很多 提示符颜色 提示符显示上一个命令的返回值(exit code),并根据是否0调整颜色 提示符生成的时间(这样就知道上一条命 ...

  6. rabbitmq 延时队列

    前言 某个产品 或者订单,有个有效期 过了有效期要取消 方法一 : 写个脚本,用crontab 定时扫描 改变状态 但是最低只能一分钟 ,不适合 方法二 : 用swoole得毫秒定时器,每秒钟去扫描表 ...

  7. JS XMLHttpRequest请求

    前言 我们知道jq的请求非常简短好用,但是其实js原生的请求也不差,并且不用插件更能说明自己本身的技术已经很强了,别人看自己代码一脸懵逼的时候,这时就可以一一解释这些代码的用处,更能让别人敬佩! JS ...

  8. 子父类存在同名成员时super的使用条件

    1.子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员,格式:super.xx  (注:xx是成员名): 2.创建子类对象时,默认会调用父类的无参构造方法,可通过sup ...

  9. 今日sb题之 sdnuoj 1064

    1 #include <iostream> 2 #include <string> 3 #include <stdio.h> 4 #include <cmat ...

  10. vue-cli2.0创建项目步骤

    Vue是近两年来比较火的一个前端框架(渐进式框架吧),与reactjs和angularjs三国鼎立,我不是职业前端,做过Vue,了解了一下React,听说过Angluar.我只能这么说,我来晚了,没经 ...