TensorFlowOnSpark安装教程

来源:互联网 发布:金域名苑 编辑:程序博客网 时间:2024/06/04 17:53
  • 各个环境版本
    OS:Ubuntu16.04 LTS
    java:jdk 1.8
    scala:2.10.4
    hadoop:2.7.3
    spark:2.1.0
    TensorFlowOnSpark:0.12.1

  • 安装Hadoop
    需要配置3台虚拟机,分别为master,slave,slave2。先配置主节点master,别的slave节点的虚拟机可copy master。

    安装SSH并配置无密码登录
sudo apt-get install openssh-servercd ~/.ssh/ssh-keygen -t rsacat ./id_rsa.pub >> ./authorized_keys
安装java环境下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html配置环境变量
vim .bashrc
添加export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source .bashrc
输入java -version,检验是否配置成功
zangtt@master:~$ java -versionopenjdk version "1.8.0_121"OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
HADOOP下载:http://hadoop.apache.org/releases.html,解压到指定目录

Hadoop集群配置:
1.core-site.xml
这里写图片描述
2.slaves
这里写图片描述
3.hdfs-site.xml
这里写图片描述

  • 安装spark(standalone)
    安装scala环境
    下载:http://www.scala-lang.org/download/
    配置环境变量
vim /etc/profile

添加

export SCALA_HOME=/usr/local/share/scalaexport PATH=$PATH:/usr/local/share/scala/bin

保存并退出,输入scala测试是否安装成功
这里写图片描述

下载spark:http://spark.apache.org/downloads.html ,解压到相应目录
配置环境变量(.bashrc)
这里写图片描述
spark集群配置
1.spark-env.sh
这里写图片描述
2.同hadoop中的slaves文件

复制两台虚拟机,修改hostname为slave,slave2
修改3台虚拟机的hosts文件

sudo vim /etc/hosts

这里写图片描述

  • 启动集群
    启动hadoop
sbin/start-all.sh

启动spark

sbin/start-all.sh

查看各项服务是否启动,主要NameNode,Master,Worker,DataNode
这里写图片描述
这里写图片描述
在master:8080可查看worker
这里写图片描述
Cores,Memory可在配置文件自行配置,worker数量至少为2,否则之后执行TensorFlowOnSpark会出现问题

  • 安装TensorFlowOnSpark
    1.下载TensorFlowOnSpark
pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.21.1-cp27-none-linux_x86_64.whl

打包测试代码,便于提交到spark集群

cd TensorFlowOnSpark export TFoS_HOME=$(pwd)pushd srczip -r ../tfspark.zip *popd

2.下载mnist测试数据集,放到TensorFlowOnSpark的目录
3.原始数据集转换为csv格式

cd ${TFoS_HOME}rm -rf examples/mnist/csv${SPARK_HOME}/bin/spark-submit \--master ${MASTER} \${TFoS_HOME}/examples/mnist/mnist_data_setup.py \--output examples/mnist/csv \--format csv

在HDFS上可查看到生成的文件
master:50070
这里写图片描述
4.训练
先将example/mnist/spark/mnist_dist.py文件中的109行logdir=TFNode.hdfs_path(ctx, args.model)改为logdir=None

${SPARK_HOME}/bin/spark-submit \--master spark://master:7077 \--py-files ${TFoS_HOME}/tfspark.zip,${TFoS_HOME}/examples/mnist/spark/mnist_dist.py \--conf spark.cores.max=4 \--conf spark.task.cpus=2 \--conf spark.executorEnv.JAVA_HOME="$JAVA_HOME" \${TFoS_HOME}/examples/mnist/spark/mnist_spark.py \--cluster_size 2 \--images examples/mnist/csv/train/images \--labels examples/mnist/csv/train/labels \--format csv \--mode train \--model mnist_model

spark.cores.max,spark.cores.cpus,–cluster_size这些参数可根据集群实际情况进行配置。
这一步不生成文件(但在伪分布模式下会在本地生成mnist_model文件,不是很明白),但不影响下一步执行。
5.预测

${SPARK_HOME}/bin/spark-submit \--master ${MASTER} \--py-files ${TFoS_HOME}/tfspark.zip,${TFoS_HOME}/examples/mnist/spark/mnist_dist.py \--conf spark.cores.max=${TOTAL_CORES} \--conf spark.task.cpus=${CORES_PER_WORKER} \--conf spark.executorEnv.JAVA_HOME="$JAVA_HOME" \${TFoS_HOME}/examples/mnist/spark/mnist_spark.py \--cluster_size ${SPARK_WORKER_INSTANCES} \--images examples/mnist/csv/test/images \--labels examples/mnist/csv/test/labels \--mode inference \--format csv \--model mnist_model \--output predictions

这里写图片描述



解决训练之后找不到mnist_model的问题:
将mnist_dist.py文件中的logdir改为本地路径,如logdir=’/tmp/’+args.model

参考链接:
1.Hadoop完全分布式安装
2.Spark完全分布式安装
3.TensorFlowOnSpark-Github-standalone
4.http://blog.csdn.net/fishseeker/article/details/61918138?utm_source=tuicool&utm_medium=referral
5.https://github.com/yahoo/TensorFlowOnSpark/issues/33

0 0
原创粉丝点击