这两天配置Hadoop和Spark真是死去活来。 网上提供的做法都挺详尽,但是有些细节基本所有人都选择性忽略掉~ 特此捡起来,权当个记录
1. Spark是什么?安装流程是什么样的?
Spark是一个强大的分布式计算引擎。他和Hadoop并不是平行关系:他的基石就是Hadoop MapReduce架构,在此基础上加以改进,并支持Scala来做更为便捷和有美感(Java迷别打我)的编程。
配置分布式系统有4种方案
- 要么你就弄个不分布式的单点系统
- 要么你就买几个电脑弄个真正的分布式系统
- 要么你就骗一骗电脑弄个伪分布式系统
怎么只有3个?伪分布式系统又可以有两种做法:
- 用虚拟机(e.g: VMWare)实现
- 用单机实现
由于胖丁已经分区装了个Ubuntu16双系统玩caffe,于是就只能用单机实现伪分布式咯。
网上的流程具体总结如下:
- 安装系统,Ubuntu和CentOS公说公好婆说婆好~ 大家自行选择
- 建个专门做hadoop的PID,个人觉得没有必要,不过我还是这么做了(毕竟另一个PID还有个难缠的caffe,最好别撞在一起)
- 把Java,Scala安装配置好,特别是~/.bashrc,后面hadoop和spark也要分别配置好~
- 下载Hadoop和Spark,分别解压缩到/usr/local/hadoop和/usr/local/spark里面
- 配置Hadoop里面的 /usr/local/hadoop/etc/hadoop里面的很多xml和一个env文件(伪分布式不用碰masters和slaves两个文件)
- 配置/etc/hosts文件
- 运行hadoop的start-all.sh, 再用jps查看,有jps加上namenode,datanode,nodemanager,resourcemanager,secondarynamenode 你就成功了
- 配置Spark里面的 /usr/local/spark/conf里面的env文件
- 运行spark的start-all.sh, 再用jps查看,原基础上多了Master和Worker你就成功了
关于上面的第6点我要重点拿出来说。无论是伪分布式还是真实分布,我们都要在里面设置master/slave和他们对应的地址。小白的我之前都是看到网上写什么我就抠什么ip地址塞进去,直到最后才发现:要根据你的设备的真实IP地址来修改的。
假如是伪分布式地址,则所有master和slave都用同一个IP,就是你主机的IP(用ifconfig可以查看);
假如是真分布的,就用真实的IP地址。
正常说,内网的IP地址都是198.168.xxx.xxx
还有要注意,Hadoop2.x之后就没有JobTracker和TaskTracker这东西了,之前让我一顿好找。网上很多教程都过时了,慎看~