Tensorflowonspark standalone安装

来源:互联网 发布:百度程序员待遇 编辑:程序博客网 时间:2024/05/16 08:06

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.6export 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.pypython 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.gitcd TensorFlowOnSparkexport TFoS_HOME=$(pwd)

打包tensorflowonspark目录的文件

zip -r tfspark.zip tensorflowonspark/*

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

mkdir ${TFoS_HOME}/mnistcd ${TFoS_HOME}/mnistcurl -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

原创粉丝点击