PySpark任务提交

一般情况下,spark任务是用scala开发的,但是对于一些偏业务人员,或者是基于上手的来说python的API确实降低了开发前置条件的难度,首当其冲的就是能跳过Java和Scala需要的知识储备,但是在提交任务到集群的时候就很麻烦了,不只是spark自身pyspark提交时不同参数导致的大小写等问题,最麻烦的是spark和python版本上的兼容与否,2.x的spark一般用3.7以下的,3.x需要3.8以上的python,还有各种小毛病都是细节上的问题。

第一步:需要下载anaconda。

清华源-》https://mirrors.tuna.tsinghua.edu.cn/#

最终下载路径-》https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh

下载后,在linux上运行脚本

bash 复制代码
sh Anaconda3-2022.10-Linux-x86_64.sh

第二步:将需要的环境打包成一个压缩包

创建一个python3.x的环境,{name} 自定义,后面是包含一个python3.9的包

bash 复制代码
conda create -n {name} python=3.9 --offline

激活这个环境,并安装需要的python第三方类库,比如pyspark

bash 复制代码
conda activate {name}
conda install pip --offline
pip install pyspark==3.2.1

当你安装完所有的需要库之后,把环境打包

bash 复制代码
conda env list
看到环境所在的地址

cd {环境名}

zip -r {包名}.zip {环境名}

第三步:用你的环境包去提交任务

bash 复制代码
# client 模式
$SPARK_HOME/spark-submit \
--master yarn \
--deploy-mode client \
--num-executors 2 \
--conf "spark.yarn.dist.archives=<Python包路径>/Python包名字.tgz#Python别名" \
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=./Python别名/bin/python" \
本地python路径比如Hello.py


# cluster 模式
$SPARK_HOME/spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 2 \
--conf "spark.yarn.dist.archives=<Python包路径>/Python包名字.tgz#Python别名" \
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=./Python别名/bin/python" \
本地python路径比如Hello.py

这里要注意的是一个大坑点!!!!,spark引擎在提交pyspark任务的参数上有其他的,比如--archivesspark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON等,这些参数慎用!有兼容性问题。从使用经验上来说上面的两个就够了。


conda其他命令:

bash 复制代码
 1、创建环境:conda create --name 环境名称
          用途:用于创建一个新的Conda环境,可以指定环境的名称。

  2、激活环境:conda activate 环境名称

          用途:用于激活指定名称的Conda环境。

  3、停用环境:conda deactivate

          用途:用于停用当前激活的Conda环境。

  4、删除环境:conda remove --name 环境名称 --all

          用途:用于删除指定名称的Conda环境,--all参数表示删除环境及其所有安装的包。

  5、安装包:conda install 包名称

         用途:用于在当前环境中安装指定的包。

  6、升级包:conda update 包名称

        用途:用于更新已安装包的版本。

  7、卸载包:conda remove 包名称

         用途:用于从当前环境中卸载指定的包。

  8、查看已安装的包:conda list

        用途:用于列出当前环境中已安装的包。

  9、搜索包:conda search 包名称

          用途:用于在Conda仓库中搜索指定的包。

  10、创建环境配置文件:conda env export > environment.yaml

          用途:用于将当前环境的配置导出到一个YAML文件中,以便在其他地方进行复制或重建环境。

  11、查看配置信息:conda config --show

          显示当前的Conda配置信息,包括通用配置、环境配置和用户配置。

  12、查看某个配置项的值:conda config --show 配置项

         显示特定配置项的当前值,例如:conda config --show channels用于显示当前配置的通道列表。

  13、设置配置项的值:conda config --set 配置项=值

        例如:conda config --set channels conda-forge用于将通道设置为conda-forge。

  14、添加通道:conda config --add channels 通道名称

         向配置中添加一个新的通道,使Conda在包搜索和安装时优先考虑该通道。

  15、移除通道:conda config --remove channels 通道名称

         从配置中移除指定的通道,使Conda不再使用该通道。

  16、列出所有通道:conda config --get channels

          列出当前配置中所有配置的通道。

  17、重置配置项:conda config --remove-key 配置项

          重置指定配置项的值为默认值。

  18、编辑配置文件:conda config --edit

         打开配置文件以进行手动编辑,可以修改各种配置选项。

  19、创建具有指定版本的环境:

    conda create --name myenv python=3.10.6

  20、从环境中导出和导入环境配置

  导出环境配置
  conda env export --name myenv --file environment.yaml

  导入环境配置
  conda env create --file environment.yaml

  21、创建一个虚拟环境的克隆:
  conda create --name myclone --clone myenv`
相关推荐
StarRocks_labs2 小时前
从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升
大数据·数据库·starrocks·分布式·spark·iris·物化视图
若兰幽竹3 小时前
【Spark分析HBase数据】Spark读取并分析HBase数据
大数据·spark·hbase
R²AIN SUITE3 小时前
金融合规革命:R²AIN SUITE 如何重塑银行业务智能
大数据·人工智能
绿算技术4 小时前
“强强联手,智启未来”凯创未来与绿算技术共筑高端智能家居及智能照明领域新生态
大数据·人工智能·智能家居
只因只因爆6 小时前
spark的缓存
大数据·缓存·spark
Leo.yuan6 小时前
3D 数据可视化系统是什么?具体应用在哪方面?
大数据·数据库·3d·信息可视化·数据分析
只因只因爆7 小时前
spark小任务
大数据·分布式·spark
cainiao0806057 小时前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言
End92810 小时前
Spark之搭建Yarn模式
大数据·分布式·spark
我爱写代码?10 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce