环境:
spark1.6
anaconda:python2.7
创建conda 虚拟环境
- 安装anaconda啦
- 下载Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
- 由于国内镜像访问比较慢所以更换为清华的 Anaconda 仓库的镜像,运行以下命令进行更换:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
#Conda 三方源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
准备虚拟环境
#创建一个tensorflowenv 的虚拟环境:
conda create -n tensorflowenv tensorflow
#安装你所需要的其他的包
conda install -n tensorflowenv [other package]
#查找打包你的所创建的虚拟包
#我的conda_home=/opt/anaconda2
tar -cvf /opt/anaconda2/envs/tensorflowenv.tar /opt/anaconda2/envs/tensorflowenv
gzip /opt/anaconda2/envs/tensorflowenv.tar
OK.至此你已经将spark TensorFlow的环境安装好了。
可以将这个包,移植解压到其他的机器上了。
注意:环境路径需要保持一致,否则没法配置python 路径
运行你的python spark程序
请注意如果你需要使用python 读取或者写入使用hdfs的文件那么你需要江hdfs 文件系统mount
到每个spark executor
的节点去。你过有别的好的办法可以告诉我。(这块需要开启hdfs的nfs gateway
)
命令:mount.nfs 192.168.1.111:/ /mnt/hdfs
#pyspark 提交任务
spark-submit \
--master yarn \
--deploy-mode cluster \
--conf spark.pyspark.python=/opt/anaconda2/envs/tensorflowenv/bin/python \
--conf spark.pyspark.driver.python=/opt/anaconda2/envs/tensorflowenv/bin/python \
tf_spark.py /mnt/hdfs/user/spark/img/L11.img /mnt/hdfs/user/spark/output
结束
只需要指定
python
环境就好了,因为他的原理是java 拉起python进程进行操作的,所以python环境是可以指定的。因为很多
C/C++
编译的包,已经封装了读写本地文件的方法,所以没法使用python
直接读取hdfs文件所以才要mount到本地