Spark有三种运行模式,分别为:
local模式-只运行在本地,相当于伪分布式
standalone模式-这种模式只需要安装Spark即可,使用自带的资源管理器
Spark on yarn/mesos模式-这种模式Spark将使用yarn/mesos作为资源管理器
一般来说,standalone适合只想体验一把Spark集群的人,如果想将Spark应用于生产环境,还需要借助第三方的资源调度模块来优化Spark的资源管理。
Spark以哪一种模式运行可以在执行spark-shell或者spark-submit命令时通过指定 --master参数来设置,如果不设置默认以local方式单机运行
由于我想在Spark安装完成后运行在yarn之上,所以在配置过程中添加了一些hadoop的配置,如果想使用Spark on yarn需要安装Hadoop2.0以及以上版本。本例是在Hadoop2.4.0平台搭建,当然,如果仅是做学习体验用只使用local或standalone模式可以不用安装Hadoop。
关于Hadoop集群的安装部署,请参考:http://blog.csdn.net/u013468917/article/details/50965530
本次在上述双节点Hadoop集群的基础上安装Spark。两个节点分别为:
master 192.168.1.131
slave1 192.168.1.125
方式一:安装了hadoop的spark
1.搭建hadoop集群
hadoop的hdfs文件系统是整个生态圈的基础,因为数据量大了以后,数据一般就都放hdfs上头了。因为四台测试机之前已经搭建好了hadoop集群环境,而且经过本宝宝测试,hadoop集群也是可用的,所以就省了搭hadoop集群的功夫。
2.配置集群host
四台机器的hostname如下:
namenodetest01.hadoop.xxx.com 192.168.9.247
datanodetest01.hadoop.xxx.com 192.168.9.248
datanodetest02.hadoop.xxx.com 192.168.9.249
datanodetest03.hadoop.xxx.com 192.168.9.228
请确认在四台机器的/etc/hosts里都添加上相应节点的信息。
3.配置集群免密登录
因为之前搭好了hadoop环境,最开始我以为这几个节点的免密登录时配置好的,所以事先没有配置。后来等把spark布好启动以后,才发现提示让我输密码,很明显就是事先没配置好免密登录。
配置的方式也很简单,因为我打算让namenodetest01机器做master,cd到home目录下的.ssh,然后执行:
ssh-keygen -t rsa
此时会在.ssh目录下生成id_rsa跟id_rsa.pub,分别对应的为私钥与公钥。
接下来,将namenodetest01的公钥scp到另外三台机器上:
scp id_rsa.pub root@datanodetest01:~/.ssh
scp id_rsa.pub root@datanodetest02:~/.ssh
scp id_rsa.pub root@datanodetest03:~/.ssh
再分别登到01,02,03两台机器,将刚传过来的公钥添加到authorized_keys中:
[root@datanodetest02 .ssh]# pwd
/root/.ssh
cat id_rsa.pub >> authorized_keys
至此,master免密登录另外两个节点配置完毕。
4.安装jdk,确保jdk版本1.7以上
因为之前搭建好了hadoop环境,所以jdk已经配置好。
需要注意的是:spark需要jdk1.7及以上。有一个节点的spark配置好以后,最开始spark-shell无法启动,但是其他两个节点的spark-shell正常启动没有问题。后来发现无法启动那个节点的jdk被人配置为1.6。。。后来修改jdk为1.7以后即可正常启动 spark-shell。
5.安装scala
因为spark是scala开发,所以scala是需要配置的。去scala官网下载相应的scala包,比如我下载的是scala-2.11.8.tar,tar -zxvf 解压以后,生成scala-2.11.8目录。查看一下里面的结构
[root@datanodetest02 soft]# tree -L 1 scala-2.11.8
scala-2.11.8
├── bin
├── doc
├── lib
└── man
4 directories, 0 files
然后在/etc/profile里配置scala的环境变量:
export SCALA_HOME=/data/wanglei/soft/scala-2.11.8
export PATH=$SCALA_HOME/bin:$PATH
保存退出,source一下配置文件让其立刻生效。然后再运行scala:
[root@datanodetest02 soft]# scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51).
Type in expressions for evaluation. Or try :help.
scala>
可见在02这个机器上scala已经成功配置好。其余两台机器也按照此过程安装配置即可。
6.开始布spark
因为我们打算用namenodetest01机器做master