SPARK-CNN 安装及使用教程

SPARK-CNN 安装及使用教程

一、准备工作

如何设置Root
Su passed root 设置密码

如何修改静态ip
主机的gateway dns,mask都在library/preference/vmware fusion/vmnet8夹下的文件里dhcpd.conf
http://blog.csdn.net/yaphat/article/details/53007127

su与su -root的区别
大部分Linux发行版的默认账户是普通账户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -
前者只是切换root身份,但shell环境仍然是普通用户的shell;
而后者连用户和shell环境一起切换成root身份了。只有切换了shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su - 命令切换以后,工作目录变成root工作目录了。

设置root用户登录

安装hadoop

出现问题:
E:Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
解决: ps -A | grep apt
查看所有正在执行的进程
杀死apt进程 killall 显示的apt进程

安装Spark(注意Spark版本和Hadoop版本的问题)
Spark1.6版本没有sparksession
Spark2.0版本增加sparksession

7.安装VMware tools
VMware-install.pl

二、安装所有依赖
安装python需要的软件使用pip语句
安装ubuntu需要的软件使用apt-get 语句

设置依赖:
如何升级python2到python3:apt-get update

安装psutil模块 http://blog.csdn.net/cui98/article/details/42212477
Pip3 install psutil
psutil模块,主要应用于系统监控,分析和限制管理资源及进程的管理,它实现了同等命令工具提供的功能。

安装cython cython是一个用来快速生成Python扩展模块(extention module)的工具
拓展:
https://www.cnblogs.com/BugQiang/p/4750216.html
•Python
一种支持面向对象和函数式(面向过程)的高级编程语言
•CPython    
由 C 语言编译,一种默认的,通常我们所提及的基于 C 的 Python 的一种实现
•Cython    
一种 Python 到 C 的一种转换器,用于对 CPyhton 做模块扩展,在一定程度上可以有一定的性能提升
•Jython
一种设计运行在 Java 平台的 Python 编程语言的实现
•IronPython
一种设计运行在 .NET CLR 平台的 Python 编程语言的实现
•PyPy
具有即时编译(JIT)功能的 Python 编程语言的实现
Pip3 install cython
http://www.php.cn/python-tutorials-360493.html

安装redis:
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。
make
make test
control+C退出
安装redis库:pip3 install redis

安装pyspark http://blog.csdn.net/sinat_26599509/article/details/51204121
修改配置文件,添加到Path中
修改BASH配置,echo PATHexportPATH= PATH:/spark安装包的bin包的位置

如果分配给虚拟机的硬盘空间过小,则有可能发生爆盘
Df-h 查看磁盘空间,可以使用gparted给再分配的磁盘空间进行分区

主机的硬盘空间被虚拟机占满,迁移虚拟机至移动硬盘

三、安装Cifar10到合适的位置

安装git
Sudo apt-get install git
Git clone 文件
存放文件的路径为当前所在位置

文件在下载的过程中损坏,检测完整性,测哈希值:md5sum 文件
计算文件的哈希值http://blog.csdn.net/cnmilan/article/details/48348117

放在本地时,cifar10存放在data数据集中
放在hdfs时,cifar10放在/data/cifar10文件夹
对hdfs上的文件进行操作 Hadoop fs -操作

Cat cat主要有三大功能:
1.一次显示整个文件。 catfilename2. cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file

四、修改utils.py

参见modify utils.py章节

五、打包源码生成python egg

把所有的源码打包成为python egg
制作python egg
python的egg文件有点像java中的jar文件,是一个工程打包文件,便于安装部署。

Python3 setup.py build build是什么作用呢?
Python3 setup.py sdist
Python3 setup.py bdist_egg

六、提交

本地运行
修改utils.py文件
1.dirpath
2.perpath
3.redis_address
4.get_hdfs-address
5.get_hdfs_address_spark

出错:不存在spark.matric模块,在文件夹下存在spark.matric.pyx.
修改办法:1.确保使用的是python3,首先修改python2为python3
https://zhidao.baidu.com/question/1897166406371420300.html
2.没有自动生成matrix.py文件,没有c文件不能被python直接import,需要生成so文件
Cython:https://www.cnblogs.com/BugQiang/p/4750216.html
编译并构建
pythonsetup.pybuildextinplace python setup.py install
生成了so文件

touch 一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

HDFS运行

启动hadoop集群 cd /usr/local/hadoop-2.6.0/sbin
bash start-dfs.sh
bash start-yarn.sh
bash mr-jobhistory-daemon.sh start historyserver
启动spark集群
Sh start-all.sh

将entry file 和python egg一起提交到spark上
HDFS必须有权限能进入HDFS,matrices。

HDFS备份数设置为1.vim hdfs-site.xml

使用spark-submit进行提交
spark-submit –master [master address] (spark settings) –py-files [path to your generated egg file] [path to spark_train.py] [num images] [num iterations] [num batches]
spark-submit –master spark://192.168.91.143:7077 –conf spark.eventLog.enabled=false –py-files /usr/local/spark-cnn/dist/spark-1.0.0-py3.5-linux-x86_64.egg /usr/local/spark-cnn/spark_train.py 50 5 5
spark-submit –master spark://192.168.91.143:7077 –conf spark.eventLog.enabled=false –py-files /usr/local/spark-cnn/dist/spark-1.0.0-py3.5-linux-x86_64.egg /usr/local/spark-cnn/spark_test.py 50 5 5
spark-submit –master spark://192.168.91.143:7077 –conf spark.eventLog.enabled=false –py-files /usr/local/spark-cnn/dist/spark-1.0.0-py3.5-linux-x86_64.egg /usr/local/spark-cnn/spark_training_test.py 50 5 5

出错:socket gaierror errno 【-2】
修改spark-env.sh文件http://blog.sina.com.cn/s/blog_59c29ded0102v5m3.html

Slave2的python版本也要用python3

Redis运行
在每个spark worker节点都要安装redis,设置redis可以远程调用。
redis必须能访问所有的节点服务器。
具体为进行操作

七、备注
源码源自w34ma的https://github.com/w34ma/spark-cnn,仅用于学术交流,对作者表示感谢。
实践过程中遇到很多问题,在查询资料中得到了解答,相关链接附在文中,感谢上述解答者。
本人学识尚浅,操作与记录可能有误,还望批评指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值