印迹

环境:

spark1.6
anaconda:python2.7

创建conda 虚拟环境

  1. 安装anaconda啦

  1. 下载Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

  2. 由于国内镜像访问比较慢所以更换为清华的 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


结束
---------
1. 只需要指定`python`环境就好了,因为他的原理是java 拉起python进程进行操作的,所以python环境是可以指定的。

2. 因为很多`C/C++`编译的包,已经封装了读写本地文件的方法,所以没法使用`python`直接读取hdfs文件所以才要mount到本地