对的,你没看错,这是我的一条龙服务,我在入坑填坑无数之后终于成功搭建起了Spark和TensorflowOnSpark的运行环境,并成功运行了示例程序(大概就是手写识别的训练和识别吧)。 安装JAVA和Hadoop这里提供一个很好的教程,就是又好用,又好看的教程。 http://www./install-hadoop/ 按照这个教程来,基本上就没有太多坑地完成安装。不过也要注意一些点。
<property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> 安装scala和Spark搭建好了上边的来我们进行下一个教程[微笑] 1. 安装scala最好选择一个2.10.X,这样对spark支持比较好,不会出现一些幺蛾子。这有个教程,应该是可以的 http://www.runoob.com/scala/scala-install.html 2. 安装spark大概是这里面最简单的事了吧 点这里下载spark 。鉴于我们已经安装好了hadoop,所以我们就下载一个不需要hadoop的spark包,就是这个with user-provided Hadoop这个 我用的是1.6.0好像大家用这个的比较多,最新的已经到2.1.x了。 解压到你想安装的目录 sudo tar -zxf ~/下载/spark-1.6.0-bin-without-hadoop.tgz -C /usr/local/ cd /usr/local sudo mv ./spark-1.6.0-bin-without-hadoop/ ./spark sudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名 之后很重点的一步是修改spark-env.sh的内容,好像要改好多好多。。。 cd /usr/local/spark cp ./conf/spark-env.sh.template ./conf/spark-env.sh vim conf/spark-enf.sh 这里是我的spark-env.sh的一些配置 export HADOOP_HOME=/home/ubuntu/workspace/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_HDFS_HOME=/home/ubuntu/workspace/hadoop export SPARK_DIST_CLASSPATH=$(/home/ubuntu/workspace/hadoop/bin/hadoop classpath) export JAVA_HOME=/home/ubuntu/workspace/jdk/ export SCALA_HOME=/home/ubuntu/workspace/scala export SPARK_MASTER_IP=192.168.1.129 export SPARK_WORKER_MEMORY=1G export SPARK_MASTER_PORT=7077 export SPARK_WORKER_CORES=1 export SPARK_WORDER_INSTANCES=2 export SPARK_EXECUTOR_INSTANCES=2 属性不明白的可以打开spark-env.sh,里面前面又好多注释,讲各种属性的意思。(ps:这里有个SPARK_DIST_CLASSPATH一定要照着改对,否则会运行不起来) 这是给力星大大的教程写得很好。 http://www./spark-quick-start-guide/3. 分布式spark部署 重点来了,当然,教程在这里 https://my.oschina.net/jackieyeah/blog/659741这里好像没什么坑,但是好像我记得刚开始的时候别的机器上的worker老是启动不起来,但是忘记是什么原因了,可能是免密登录没设置还是怎么的。 照着教程完成了之后,你就获得了spark的集群辣,撒花~(≧▽≦)/~ ps:这里还有个搭建standalone集群的简单介绍, Spark的Standalone模式安装部署 安装TensorflowOnSpark这个真是说难也难,说简单真是巨简单,因为步骤github上已经写得好好的了,但是,有些坑,确实会把人坑死的。 雅虎开源的TensorflowOnSpark1. 啥?你说全是英文看不懂,好吧我也看不懂,不过你想安装TensorflowOnSpark的话,应该拉到底点这里的wiki site 2. 由于前面说了,我们用的是自带的standalone集群管理器,所以,就点 3. 进入了教程之后,第一步复制粘贴,如果没git请按照提示安装git; 第二步不需要,因为你安装好了Spark了;第三步点进去那个instruction,或者你会发现你点不开(我就点不开。。。),你可以选择这里: tensorflow中文网 。要注意的一点小坑是,在第三步的最后有一个测试 python ${TFoS_HOME}/tensorflow/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py --data_dir ${TFoS_HOME}/mnist 如果你下载的是tensorflow1.x的版本,可能会有问题运行不出来,因此我下载的是0.12.1版本,啥,你问我怎么下,就是教程里的这句 $ pip install https://storage./tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl 里的0.5.0改成0.12.1就木有问题了。 还有就是那个mnist的数据集可能由于某些原因链接不上那个网址也下载不下来(我也是酱紫的。。。),可以到我的csdn上下载 http://download.csdn.net/detail/fishseeker/9779536 。 4. 第四步就是启动spark了,其实直接启动就行了,底下那些乱七八糟的设置可以自行配置。 5. 第五步,把我坑成狗。。。需要像下面这么改,而这个cv.py其实就是改了文件输入的路径,好像本来是在hdfs上,我给改成本地的路径,噢,对了,这里的输出是输出到hdfs上,所以一定要打开hdfs啊,否则就GG了。 ${SPARK_HOME}/bin/spark-submit --master spark://master:7077 ${TFoS_HOME}/examples/mnist/cv.py --output examples/mnist/csv --format csv cv.py的改动就是把mnist_data_setup.py第132,133行调用writeMNIST的方法的参数改了。具体见下图 改动后是这样 这个代码运行了之后去50070端口的hdfs查看你的文件就有了。 6. 第六步是train,就是用刚才那个转换的数据进行训练模型,这里也需要改一些东西 ${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 注意有几个worker这个cluster_size就至少要设置成几,spark.task.cpu的数量要大于等于worker的数量。虽然都设置好了,也看起来像跑起来了,但是会被卡住不动。这时需要进入8080端口里看看worker的strerr,我这里曾经报错说没有设置 HADOOP_HDFS_HOME,这个需要在spark-env.sh里export一下,就设置成和HADOOP_HOME一样就行了。这只好了还是动,需要改一下mnist_spark.py的第109行,把logdir=logdir –>logdir=None(另外这里119行也同样改动,否则下一步识别的时候也会卡住) 7. 第七步的时候还是照常修改一些数(主要是我没设置这些),然后改一下代码。 ${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/test/images --labels examples/mnist/csv/test/labels --mode inference --format csv --model mnist_model --output predictions
|
|
来自: 进门交钱 > 《Tensorflow》