spark-submit 提交spark程序示例

spark-submit \
--master yarn \
--deploy-mode client \
--conf spark.driver.maxResultSize=8g
--conf spark.driver.memory=8g \
--conf spark.executor.memory=16g \
--conf spark.debug.maxToStringFields=100 \
--conf "spark.yarn.dist.archives=hdfs://user/4885/Python-3.6.8.zip#python_env" \
--conf "spark.pyspark.python=python_env/Python-3.6.8/bin/python3" \
--conf "spark.pyspark.driver.python=/user/4885/Python-3.6.8/bin/python3" \
--queue root.default first_pyspark.py

1)使用client模式 需要保证driver和executor上的python版本一致
2)若executor上的python不满足要求,可通过如下参数上传打包好的python到executor上

配置方式1
Python-3.6.8.zip 在本地文件系统

# 上传python包到executor
--archives /user/4885/Python-3.6.8.zip

# 指定executor上python路径
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./python_env/Python-3.6.8/bin/python3
--conf spark.pyspark.python=./python_env/Python-3.6.8/bin/python3

# 指定driver上python路径
--conf spark.pyspark.driver.python=/user/4885/Python-3.6.8/bin/python3

配置方式2
把python包 Python-3.6.8.zip 上传至hdfs,用 spark.yarn.dist.archives 代替 --archives

--conf spark.yarn.dist.archives=hdfs:///user/4885/Python-3.6.8.zip#python_env
--conf spark.pyspark.python=./python_env/Python-3.6.8/bin/python3
--conf spark.pyspark.driver.python=/user/4885/Python-3.6.8/bin/python3


 

spark-submit --help

主要参数

--master  设置集群的URL,任务提交到何处执行。
local   提交到本地服务器执行,分配单个线程
local[k]   提交到本地服务器执行,分配k个线程
spark://host:port   提交到standalone模式部署的spark集群中,并指定主节点的IP与端口
yarn   提交到yarn模式部署的hadoop集群中
mesos://host:port   提交到mesos模式部署的集群中,并指定主节点的IP与端口


--deploy-mode 
client  默认的方式,在客户端上启动driver,这样逻辑运算在client上执行,任务执行在集群上。
cluster  逻辑运算与任务执行均在集群上,该模式暂不支持mesos集群或python应用程序。


--class CLASS_NAME
指定应用程序的类入口,即主类。仅针对Java和Scala程序,不作用于python程序。


--name NAME  应用程序的名称,用于区分不同的程序


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


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

--exclude-packages  为了避免冲突,指定参数从--packages 中排除的jars包

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


--conf prop=value   指定spark配置属性的值

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


--driver-memory   driver程序使用内存大小,默认为1G
--driver-memory 6g 
--driver-cores 4 

--driver-java-options   传递给driver的额外选项
--driver-library-path   传递给driver的额外的库路径
--driver-class-path   传递给driver的额外的类路径,用--jars 添加的jar包会自动包含在类路径里


--executor-memory   每个executor的内存,默认为1G
--executor-memory 12g 

--executor-cores 15 
--num-executors 10






 

你可能感兴趣的:(spark,大数据,python)