您的位置:首页 > 其它

TensorFlowOnSpark安装教程

2017-05-09 11:28 701 查看
各个环境版本

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-server
cd ~/.ssh/
ssh-keygen -t rsa
cat ./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 -version
openjdk 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/scala
export 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[/code] 
打包测试代码,便于提交到spark集群

cd TensorFlowOnSpark
export TFoS_HOME=$(pwd)
pushd src
zip -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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: