python虚拟环境可以运行pyspark_pyspark 与 python 环境配置

主要是解决包依赖问题,通过virtualenv来解决,需要打包环境和spark 是slave端运行环境一致,通过anaconda来解决,则完全不需要保持与线上spark机环境一致,只需要是linux系统即可。本篇主要介绍通过 anaconda 创建虚拟环境,并打包上传到hdfs目录。

1. Anaconda安装

bash ~/Downloads/Anaconda2-5.0.1-Linux-x86_64.sh

# 如果安装过程中对“Do you wish the installer to prepend the Anaconda<2 or 3> install location to PATH in your /home//.bashrc ?”没有选择yes,手工执行下面命令

echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc

# 更新bashrc以立即生效

source ~/.bashrc

# 检验安装是否正确

conda --version

2. Anaconda下python虚拟环境安装

## python指定版本,后面是顺带需要安装的包

conda create --name spark_test python=3 scikit-learn

## 列出目前创建的坏境

conda info --envs

## 之后不需要这个环境,可以通过下面命令

conda remove --name spark_test --all

3. 使用conda安装包常用命令

# 查看当前环境下已安装的包

conda list

# 查看某个指定环境的已安装包

conda list -n spark_test

# 查找package信息

conda search numpy

# 安装package

conda install -n spark_test numpy

# 如果不用-n指定环境名称,则被安装在当前活跃环境

# 也可以通过-c指定通过某个channel安装

# 更新package

conda update -n spark_test numpy

# 删除package

conda remove -n spark_test numpy

4. 为conda设置国内镜像

# 添加Anaconda的TUNA镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

# TUNA的help中镜像地址加有引号,需要去掉

# 设置搜索时显示通道地址

conda config --set show_channel_urls yes

5. 环境打包

# 路径

~/anaconda3/env/spark_test

# 打包存到hdfs目录

zip -r spark_test.zip spark_test/

hadoop fs -put spark_test.zip /user/xxx/pyspark/

6. spark-submit语句,增加环境目录

export PYSPARK_PYTHON="./spark_test.zip/spark_test/bin/python"

spark-submit --master yarn \

--deploy-mode cluster \

--driver-memory 10g \

--executor-memory 20g \

--num-executors 100 \

--executor-cores 5 \

--queue root.data.qe \

--files ./hive-site.xml \

--archives hdfs:///user/xxx/pyspark/spark_test.zip \

--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=$PYSPARK_PYTHON" \

--conf "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=$PYSPARK_PYTHON" \

test.py

【参考】

你可能感兴趣的:(python虚拟环境可以运行pyspark_pyspark 与 python 环境配置)