Tensorflowonspark standalone安装

Tensorflowonspark standalone安装
1. 实验环境
Centos7 , jdk1.8.0_65 , hadoop2.7.4
Spark1.6.0 , tensorflow0.12.1 ,tensorflowonspark1.0.2
虚拟机地址:
192.168.1.84(master)
192.168.1.85(slave)
192.168.1.86(slave)
2. 搭建hadoop集群
hadoop完全分布式安装过程

  1. 搭建spark集群(standalone模式)
    Master 机器:
    下载spark-1.6.0-bin-hadoop2.6.tar,放在/opt/lqu/packages(这是我自己设置的目录)

    1. 解压:tar -xvf spark-1.6.0-bin-hadoop2.6.tar
    2. spark配置:
      进入conf目录:
      cp spark-env.sh.template spark-env.sh

    vim spark-env.sh
    export JAVA_HOME=/opt/lqu/packages/jdk1.8.0_65
    export SPARK_MASTER_IP=192.168.1.84
    export SPARK_WORKER_MEMORY=1g
    export HADOOP_CONF_DIR=/opt/lqu/packages/hadoop- 2.7.4/etc/hadoop
    export HADOOP_HDFS_HOME=/opt/lqu/packages/hadoop-2.7.4/
    SPARK_WORKER_CORES=1

    [注]:SPARK_WORKER_MEMORY: Worker 节点能够分配给 Executors 的最大内存大小
    SPARK_WORKER_CORES:电脑的核数(上面这两个参数通过命令行可以查)

    cp slaves.template slaves

  vim slaves
  192.168.1.84
  192.168.1.85
  192.168.1.86

[注]:192.168.1.84既是master节点,也是worker节点

  1. 修改配置文件
vim /etc/profile
export SPARK_HOME=/opt/lqu/packages/spark-1.6.0-bin-hadoop2.6
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

让配置文件生效:source /etc/profile
配置完成
4. 启动
①首先查看hadoop集群是否启动,可使用jps查看
在master(192.168.1.84)启动
cd /opt/lqu/packages/spark-1.6.0-bin-hadoop2.6/sbin
启动master:start-master.sh
启动slaves:start-slaves.sh

②在master节点查看
这里写图片描述
在其他两台slave上查看:
这里写图片描述

这里写图片描述
③ 浏览器观察spark
这里写图片描述

Standalone集群安装:https://my.oschina.net/jackieyeah/blog/659741
这篇文章很详细

4 . 安装tensorflow
1. 安装python2.7
电脑自带python2.7.5,省略这一步
2. 安装pip

curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py
  1. 使用pip安装tensorflow(使用清华镜像源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==0.12.1

因为官方给出的示例版本是0.12.1,所以安装该版本,要不然版本不兼容容易出现一些不知道的错误
4. 查看
这里写图片描述
安装成功

【坑】给三台虚拟机都安装tensorflow,之前只给master节点安装tensorflow,其他两台找不到six.moves.queue模块。
5. 安装tensorflowonspark

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 
tensorflowonspark
git clone https://github.com/yahoo/TensorFlowOnSpark.git
cd TensorFlowOnSpark
export TFoS_HOME=$(pwd)

打包tensorflowonspark目录的文件

zip -r tfspark.zip tensorflowonspark/*

tfspark.zip是我们生成的python库文件,之后提交Spark的时候用到,其就是把tensorflowonspark所有文件进行了打包。
6. 样例测试
1. 下载数据集

mkdir ${TFoS_HOME}/mnist
cd ${TFoS_HOME}/mnist
curl -O "http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz"
curl -O "http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz"
curl -O "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz"
curl -O "http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz"
2. 转换mnist数据集(.gz-->csv)

在hdfs上/user/root/建立目录examples/mnist/csv
[注]因为我是用root用户运行的,所以在/user/root底下建立目录,如果是其他用户运行,则在/user/${user}下建立目录

${SPARK_HOME}/bin/spark-submit \
--master=local[*]  \
${TFoS_HOME}/examples/mnist/mnist_data_setup.py \
--output examples/mnist/csv \
--format csv

这里写图片描述
将上面的地址改为实际下载目录
转换成功后查看hdfs,生成2个目录
这里写图片描述
3. 训练模型

${SPARK_HOME}/bin/spark-submit \
--master=spark://192.168.1.84:7077 \
--conf spark.executorEnv.LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/amd64/server“\
--conf spark.executorEnv.CLASSPATH="$($HADOOP_HOME/bin/hadoop classpath --glob):${CLASSPATH}" \
--py-files ${TFoS_HOME}/examples/mnist/spark/mnist_dist.py,${TFoS_HOME}/tfspark.zip \
--conf spark.cores.max=3 \
--conf spark.task.cpus=1 \
${TFoS_HOME}/examples/mnist/spark/mnist_spark.py \
--cluster_size 3 \
--images examples/mnist/csv/train/images \
--labels examples/mnist/csv/train/labels \
--format csv \
--mode train \
--model mnist_model

spark.cores.max/spark.task.cpus=workernumber,如果设置不满的话会出现无限等待的情况。
spark.cores.max(集群总核数)
spark.task.cpus(worker节点分配核数)

将mnist_dist.py 的logdir改为本地路径,如logdir=’/tmp/’+args.model
这里写图片描述
运行成功后,hdfs查看:
这里写图片描述
4. 预测模型

${SPARK_HOME}/bin/spark-submit \
--master spark://192.168.1.84:7077 \
--conf spark.executorEnv.LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/amd64/server" \
--conf spark.executorEnv.CLASSPATH="$($HADOOP_HOME/bin/hadoop classpath --glob):${CLASSPATH}" \
--py-files ${TFoS_HOME}/tfspark.zip,${TFoS_HOME}/examples/mnist/spark/mnist_dist.py \
--conf spark.cores.max=3 \
--conf spark.task.cpus=1 \
--conf spark.executorEnv.JAVA_HOME="$JAVA_HOME" \
${TFoS_HOME}/examples/mnist/spark/mnist_spark.py \
--cluster_size 3 \
--images examples/mnist/csv/test/images \
--labels examples/mnist/csv/test/labels \
--mode inference \
--format csv \
--model mnist_model \
--output predictions

这里写图片描述
终于成功了
这里写图片描述
在经历无数次才坑爬坑后,终于成功了,一定要多看日志,再坚持一下,就成功了。
下面,推荐几个较好的链接
tensorflowonspark standalone安装
官方安装文档github

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值