Spark集群环境搭建

继上次的hadoop环境搭建,现追加安装spark集群。

安装scala

以下操作在master主机上完成。spark依赖于scala环境,所以首先安装scala。下载scala安装包scala-2.11.0.tgz,解压到/usr/local/etc/路径下。
配置环境变量:编辑/etc/profile文件,在最后面添加如下配置:

1
2
export SCALA_HOME=/usr/local/etc/scala-2.11.0
export PATH=$PATH:${SCALA_HOME}/bin

编辑并保存完成etc/profile文件之后,执行:

1
2
3
hadoop@master:~$ source /etc/profile # 使生效
hadoop@master:~$ scala -version
Scala code runner version 2.11.0 -- Copyright 2002-2013, LAMP/EPFL

安装Spark

下载Spark安装包spark-1.6.1-bin-hadoop2.6.tgz,解压到/usr/local/etc/路径下。
配置环境变量:编辑/etc/profile文件,在最后面添加如下配置:

1
2
export SPARK_HOME=/usr/local/etc/spark-1.6.1-bin-hadoop2.6
export PATH=$PATH:${SPARK_HOME}/bin:${SPARK_HOME}/sbin

编辑并保存完成etc/profile文件之后,执行:

1
hadoop@master:~$ source /etc/profile # 使生效

这里需要注意一下,因为之前在配置Hadoop环境的时候,在hadoop中已经存在start-all.sh以及stop-all.sh这两个文件,可以更改spark中sbin/的对应文件的名称以避免冲突,甚至还有其他重名的文件,在使用过程中还需多加注意。所以我将spark中的这两个文件改名为对应的spark-start-all.shspark-stop-all.sh


接下来配置spark集群环境
转移到spark根目录下的conf文件夹中。

1
2
3
4
hadoop@master:/usr/local/etc/spark-1.6.1-bin-hadoop2.6/conf$ ls
docker.properties.template metrics.properties.template spark-env.sh.template
fairscheduler.xml.template slaves.template
log4j.properties.template spark-defaults.conf.template

复制一份slaves.template文件,其名为slaves

1
hadoop@master:/usr/local/etc/spark-1.6.1-bin-hadoop2.6/conf$ sudo cp slaves.template slaves

编辑slaves文件,在后面追加:

1
2
3
master # 删除这里的 localhost,并改为 master
slave01 # 在hadoop环境配置时已经配置好了两个从属主机的名称,对应的是 192.168.1.201
slave02 # 192.168.1.202

复制一份spark-env.sh.template文件,其名为spark-env.sh

1
hadoop@master:/usr/local/etc/spark-1.6.1-bin-hadoop2.6/conf$ sudo cp spark-env.sh.template spark-env.sh

编辑spark-env.sh文件,在后面追加:

1
2
export JAVA_HOME=/usr/lib/java/jdk1.8.0_45
export SCALA_HOME=/usr/local/etc/scala-2.11.0

完成以上操作之后,将该master上的所有操作在slaves(slave01,slave02)主机上也进行同样的操作。确保环境变量,spark的配置信息等,在三台主机上的信息一致。

完成所有操作之后,使用spark-start-all.sh启动spark。在浏览器地址栏输入:”master:8080”即可查看spark集群状态。

总结一下

  • 1、下载文件”scala-2.11.0.tgz“、”spark-1.6.1-bin-hadoop2.6.tgz“
  • 2、将这两个文件解压到/usr/local/etc/路径下
  • 3、在/etc/profile文件中添加scala和spark的环境变量
  • 4、配置spark的conf,配置slaves文件添加从属机器,配置spark-env.sh添加两个环境变量。
  • 5、三台主机(master、slave01、slave02)做相同的配置

官方文档

官方文档地址
阿里云社区Spark核心技术与实践