美文网首页
pyspark 使用virtualenv打包独立运行环境

pyspark 使用virtualenv打包独立运行环境

作者: 迷茫_小青年 | 来源:发表于2021-10-22 16:32 被阅读0次

背景:

pyspark 运行时需要很多额外数据科学包,比如pandas,numpy, pyspark 等等 。如果不使用virtualenv 独立打包,你需要在每个nodemanager 节点上的python都要安装这些包,而且还设计各种版本问题。

如果使用virtualenv独立打包,每个用户都将有一个独立的python环境包,每个用户可以根据自己的需求安装自己的版本。
而且不需要在nodemanager 每个节点上安装,也不影响系统的python环境。

1、找一个机器pip install virtualenv

2、创建一个虚拟环境virtualenv -p /usr/bin/python3.6 pyspark_env

-p 指定python版本,如果想用python2.7 就指定/usr/bin/python2.7

3、source pyspark_env/bin/activate 进入创建的python虚拟环境

4、pyspark_env/bin/pip install pandas pyspark numpy

5、deactivate 推出虚拟环境

6、zip -r pyspark_env.zip pyspark_env 打包成一个zip

7、hadoop fs -put pyspark_env.zip /tmp/pyspark_env.zip 把pyspark_env.zip 上传到hdfs

8、提交任务 加上--archives 以及指定spark driver python路径

spark-submit \
--deploy-mode cluster \
--master yarn \
--driver-memory 2g \
--num-executors 6 \
--executor-memory 4g \
--executor-cores 2 \
--queue default \
--name test \
--archives hdfs:///tmp/pyspark_env.zip#pyspark_env \
--conf spark.pyspark.driver.python=./pyspark_env/pyspark_env/bin/python3 \
--conf spark.pyspark.python=./pyspark_env/pyspark_env/bin/python3 \
/home/hadoop/tmp/nibo/test.py

--archives hdfs:///tmp/pyspark_env.zip#pyspark_env
#号后面的pyspark_env 意思是解压zip的目录名字,如果不加#pyspark_env 解压的目录名就会变成pyspark_env.zip。

这样提交pyspark任务,nodemanager就会到hdfs 先把python环境包下载下来,然后解压。执行任务 。

相关文章

网友评论

      本文标题:pyspark 使用virtualenv打包独立运行环境

      本文链接:https://www.haomeiwen.com/subject/vfzcaltx.html