spark-submit

进入$SPARK_HOME目录,输入bin/spark-submit --help可以得到该命令的使用帮助。

spark-submit 提交参数

--master  MASTER_URL spark://host:portmesos://host:port, yarn, or local.

--deploy-mode    DEPLOY_MODE          driver运行之处,client运行在本机,cluster运行在集群

--class CLASS_NAME                             应用程序包的要运行的class

--name NAME                                          应用程序名称

--jars JARS                                              用逗号隔开的driver本地jar包列表以及executor类路径

--py-files PY_FILES                                 用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip, .egg, .py文件列表

--files                                                        FILES 用逗号隔开的要放置在每个executor工作目录的文件列表

--properties-file                                         FILE 设置应用程序属性的文件放置位置,默认是conf/spark-defaults.conf

--driver-memory MEM                              driver内存大小,默认512M

--driver-java-options                                 driver的java选项

--driver-library-path                                  driver的库路径Extra library path entries to pass to the driver

--driver-class-path                                    driver的类路径,用--jars 添加的jar包会自动包含在类路径里

--executor-memory MEM                         executor内存大小,默认1G

Spark standalone with cluster deploy mode only:

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

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

Spark standalone and Mesos only:

--total-executor-cores NUM executor使用的总核数

YARN-only:

--executor-cores NUM 每个executor使用的内核数,默认为1

--queue QUEUE_NAME 提交应用程序给哪个YARN的队列,默认是default队列

--num-executors NUM 启动的executor数量,默认是2个

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

关于以上spark-submit的help信息,有几点需要强调一下:

关于--master --deploy-mode,正常情况下,可以不需要配置--deploy-mode,使用下面的值配置--master就可以了,使用类似 --master spark://host:port --deploy-mode cluster会将driver提交给cluster,然后就将worker给kill的现象。

Master URL                        含义

local                                   使用1个worker线程在本地运行Spark应用程序

local[K]                              使用K个worker线程在本地运行Spark应用程序

local[*]                               使用所有剩余worker线程在本地运行Spark应用程序

spark://HOST:PORT连接到Spark Standalone集群,以便在该集群上运行Spark应用程序

mesos://HOST:PORT连接到Mesos集群,以便在该集群上运行Spark应用程序

yarn-client                         以client方式连接到YARN集群,集群的定位由环境变量HADOOP_CONF_DIR定义,该方式driver在client运行。

yarn-cluster                       以cluster方式连接到YARN集群,集群的定位由环境变量HADOOP_CONF_DIR定义,该方式driver也在集群中运行。

如果要使用--properties-file的话,在--properties-file中定义的属性就不必要在spark-sumbit中再定义了,比如在conf/spark-defaults.conf 定义了spark.master,就可以不使用--master了。关于Spark属性的优先权为:SparkConf方式 > 命令行参数方式 >文件配置方式,具体参见Spark1.0.0属性配置。

和之前的版本不同,Spark1.0.0会将自身的jar包和--jars选项中的jar包自动传给集群。

Spark使用下面几种URI来处理文件的传播:

file:// 使用file://和绝对路径,是由driver的HTTP server来提供文件服务,各个executor从driver上拉回文件。

hdfs:, http:, https:, ftp: executor直接从URL拉回文件

local: executor本地本身存在的文件,不需要拉回;也可以是通过NFS网络共享的文件。

--jars参数,引用第三方依赖的jar 包

特别注意:将所需要的jar包放入自己指定的文件夹,将所依赖的jar包的绝对路径名字使用',' 进行拼接;

echo `ls ~/Document/software/hbase_jar/*.jar` | tr ' ' ','

参数名参数说明

--mastermaster 的地址,提交任务到哪里执行,例如 spark://host:port,  yarn,  local

--deploy-mode 在本地 (client) 启动 driver 或在 cluster 上启动,默认是 client

--class 应用程序的主类,仅针对 java 或 scala 应用

--name 应用程序的名称

--jars 用逗号分隔的本地 jar 包,设置后,这些 jar 将包含在 driver 和 executor 的 classpath 下

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

--exclude-packages 为了避免冲突 而指定不包含的 package

--repositories 远程 repository

--conf PROP=VALUE 指定 spark 配置属性的值,

 例如 -conf spark.executor.extraJavaOptions="-XX:MaxPermSize=256m"

--properties-file 加载的配置文件,默认为 conf/spark-defaults.conf

--driver-memory Driver内存,默认 1G

--driver-java-options 传给 driver 的额外的 Java 选项

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

--driver-class-path 传给 driver 的额外的类路径

--driver-cores Driver 的核数,默认是1。在 yarn 或者 standalone 下使用

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

--total-executor-cores 所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用

--num-executors 启动的 executor 数量。默认为2。在 yarn 下使用

--executor-core 每个 executor 的核数。在yarn或者standalone下使用

示例:

yuanpei

#!/bin/bash

#=====================

#yarn-client

#=====================

export PYSPARK_PYTHON="./zhx/py3envzh/bin/python" && \

export PYSPARK_DRIVER_PYTHON=`which python3` && \

spark-submit \

--master yarn --deploy-mode client \

--driver-memory 2G --num-executors 5 \

--executor-cores 4 --executor-memory 4g \

--driver-java-options "-XX:MaxPermSize=1024M" \

--conf spark.sql.shuffle.partitions=200 \

--conf spark.sql.files.maxPartitionBytes=268435456 \

--conf spark.sql.files.openCostInBytes=2097152 \

--packages org.mongodb.spark:mongo-spark-connector_2.11:2.3.2 \

--archives /root/zhx/py3envzh.zip#zhx \

--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./zhx/py3envzh/bin/python \

--py-files /root/zhx/dist/yuanpei-0.1-py3.6.egg \

--queue kb_ai \

/root/zhx/yuanpei.py

xingzhi

#!/bin/bash

#=====================

#yarn-client

#=====================

export PYSPARK_PYTHON="./zsk/py3xzenv/bin/python" && \

export PYSPARK_DRIVER_PYTHON=`which python3` && \

spark-submit \

--master yarn --deploy-mode client \

--driver-memory 2G --num-executors 5 \

--executor-cores 4 --executor-memory 6g \

--driver-java-options "-XX:MaxPermSize=1024M" \

--jars $(echo /root/zsk/hbase_jar/*.jar | tr ' ' ',') \

--conf spark.sql.shuffle.partitions=200 \

--conf spark.sql.files.maxPartitionBytes=268435456 \

--conf spark.sql.files.openCostInBytes=2097152 \

--archives /root/zsk/py3xzenv.zip#zsk \

--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./zsk/py3xzenv/bin/python \

--py-files /root/zsk/xingzhi/dist/xingzhi-0.1-py3.6.egg \

--queue kb_ai \

/root/zsk/xingzhi/xingzhi.py \

debug

def init_static(LOGGING):

'''initialize static configuration'''

dictConfig(LOGGING)

os.environ['HADOOP_USER_NAME'] = 'hdfs'

conf = SparkConf()

#conf.addPyFile('/home/hdfs/zsk/site-packages.zip')

#conf.setMaster("local[2]")

#conf.setMaster("yarn")

conf.setAppName('xingzhi_student_stat')

#conf.set('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.11:2.1.2')

#conf.set("spark.driver.host", "localhost")

conf.set('hive.metastore.uris', 'thrift://10.10.130.93:9083')

#这个是数据库连接语句

conf.set("spark.mongodb.input.uri", "mongodb://kb_dev:kb_dev@10.10.254.13:27017/test_kboe")

conf.set("spark.mongodb.output.uri", "mongodb://kb_dev:kb_dev@10.10.254.13:27017/test_kboe")

#ss = SparkSession.builder.getOrCreate()

sc = SparkContext(conf=conf)

#sc.setLogLevel('ALL')

hadoopConf = sc._jsc.hadoopConfiguration()

hadoopConf.set("fs.defaultFS", "hdfs://aiyunxiao")

hadoopConf.set("dfs.nameservices", "aiyunxiao")

hadoopConf.set("dfs.ha.namenodes.aiyunxiao", "nn1,nn2")

hadoopConf.set("dfs.namenode.rpc-address.aiyunxiao.nn1", "10.10.130.91:8020")

hadoopConf.set("dfs.namenode.rpc-address.aiyunxiao.nn2", "10.10.130.92:8020")

hadoopConf.set("dfs.client.failover.proxy.provider.aiyunxiao", "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")

return sc

anaconda 打包需要用到的python第三方包

例如:pymongo

如果在spark driver 端用到pymongo,需要在diver端安装pymongo

pip3 install pymongo

cluster模式

#!/bin/bash

#=====================

#yarn-client

#=====================

export PYSPARK_PYTHON="./zsk/py3xzenv/bin/python" && \

export PYSPARK_DRIVER_PYTHON=`which python3` && \

spark-submit \

--master yarn \

--deploy-mode cluster \

--driver-memory 2G \

--num-executors 5 \

--executor-cores 4 \

--executor-memory 6g \

--driver-java-options "-XX:MaxPermSize=1024M" \

--jars $(echo /root/xingzhi/hbase_jar/*.jar | tr ' ' ',') \

--conf spark.sql.shuffle.partitions=300 \

--conf spark.sql.files.maxPartitionBytes=268435456 \

--conf spark.sql.files.openCostInBytes=2097152 \

--archives /root/xingzhi/py3zh.zip#zsk \

--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./zsk/py3zh/bin/python \

--py-files /root/xingzhi/conduct_bak/xingzhi/dist/xingzhi-0.1-py3.6.egg \

--queue kb_ai \

/root/xingzhi/conduct_bak/xingzhi/xingzhi.py \

debug

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容