Pyspark怎么在没有Python环境的大数据集群提交任务?
摘要:本文介绍了使用Anaconda创建Python虚拟环境并部署PySpark任务的完整流程。首先在本地安装Anaconda并创建指定Python版本的虚拟环境(如Python 3.7),调试PySpark脚本确保单机运行正常。然后将虚拟环境打包为zip文件,与脚本一起上传至HDFS。最后通过spark-submit命令提交任务,其中关键配置包括指定虚拟环境路径、Python解释器路径以及各类资
·
一、本地电脑安装anaconda环境
二、创建虚拟环境xcr_model
python版本根据自己的需求自行选择
conda create -n xcr_model python=3.7 pip ipykernel
三、在虚拟环境下单机调试Pyspark脚本
此过程需要安装各种python依赖包,保证Pyspark脚本可以在当前单机环境执行成功
四、调试成功后,将虚拟环境打包zip,xcr_model_env.zip
建议直接找到虚拟环境xcr_model 文件夹,进行zip打包
zip -r xcr_model_env.zip xcr_model
五、将虚拟环境zip包、Pyspark脚本分别上传到hdfs
hdfs dfs -put <本地文件路径> <HDFS目标路径>
六、执行以下脚本提交任务(核心)
spark-submit --master yarn \
--name "xcr_model" \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 4 \
--num-executors 60 \
--deploy-mode cluster \
--archives "hdfs:/tmp/xcr/xcr_model_env.zip#PyEnv" \
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=PyEnv/xcr_model/bin/python3.7" \
--conf "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=PyEnv/xcr_model/bin/python3.7" \
--conf "spark.executorEnv.PYSPARK_PYTHON=PyEnv/xcr_model/bin/python3.7" \
--conf "spark.executorEnv.PYSPARK_DRIVER_PYTHON=PyEnv/xcr_model/bin/python3.7" \
hdfs:/tmp/xcr/model.py # pyspark 脚本
附:一些spark参数介绍
## Driver程序使用的CPU核数
# driver.cores=1
## Driver程序使用内存大小
driver.memory=30g
## 对Spark每个action结果集大小的限制,最少是1M,若设为0则不限制大小。
## 若Job结果超过限制则会异常退出,若结果集限制过大也可能造成OOM问题
driver.maxResultSize=10g
## 启动的executor的数量
executor.instances=12
## 每个executor使用的CPU核数
executor.cores=5
## 每个executor内存大小
executor.memory=30g
## 任务优先级, 值越小,优先级越高,范围:1-1000
# logLevel=DEBUG
## spark 日志级别可选ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN
logLevel=INFO
## spark中所有网络交互的最大超时时间
spark.network.timeout=24000s
yarn application -list # 查看当前集群所有任务
yarn application -kill id 杀死指定任务
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)