下面给出的是spark集群搭建的环境:html
操做系统:最小安装的CentOS 7(下载地址)java
Yarn对应的hadoop版本号:Hadoop的Cloudera公司发行版Hadoop2.6.0-CDH5.4.0(下载地址)linux
Java版本号:JDK1.8(下载地址)web
Scala版本号:Scala2.10.4(下载地址)centos
Spark版本号:spark-1.3.1-bin-hadoop2.6(下载地址)oracle
集群组成:master 192.168.1.2app
slave1 192.168.1.3工具
slave2 192.168.1.4oop
slave3 192.168.1.5测试
一、 操做系统的安装
我以为这个就不必说了,下载一个虚拟机或者直接在真机安装,比较简单,再也不赘述。
二、 Java的安装
请参看个人博文《Jdk1.8在CentOS7中的安装与配置》有详细说明。
三、 Scala的安装
请参看个人博文《Scala2.10.4在CentOS7中的安装与配置》有详细说明。
四、 Yarn的部署
Yarn是由Hadoop2.x发展而来,是Hadoop1.x的JobTracker和TaskTracker的升级版本,是hadoop2.x的资源调度工具。搭建Hadoop2.x环境的时候,yarn会自动被搭建好,因此,咱们只须要搭建hadoop环境便可。
Hadoop具体环境搭建,请参看个人博文《Hadoop2.6.0在CentOS 7中的集群搭建》有详细说明。
五、 Spark的集群搭建
a) 首先,从官网下载spark1.3.1对应hadoop2.6.0的版本(注:如下全部操做都在超级用户模式下进行!)
b) 在主节点master的root/app的目录下,解压下载好的spark-1.3.1-bin-hadoop2.6.tgz:
tar –xzvf spark-1.3.1-bin-hadoop2.6.tgz
c) 配置Spark的环境变量:
i. vi /etc/profile
ii. 在文件最后添加:
## SPARK export SPARK_HOME=spark的绝对路径(我这边是:/root/app/spark-1.3.1-bin-hadoop2.6) export PATH=$PATH:$SPARK_HOME/bin
d) Spark的相关文件配置
i. slaves的配置:
slave1
slave2
slave3
ii. spark-env.sh的配置
export JAVA_HOME=Java安装的绝对路径(我这边是:/root/app/jdk1.8) export SCALA_HOME=Scala安装的绝对路径(我这边是:/root/app/scala2.10) export HADOOP_CONF_DIR=hadoop环境下的配置文件目录etc/hadoop的绝对路径(我这边是:/root/app/hadoop-2.6.0-cdh5.4.0/etc/Hadoop) export SPARK_MASTER_IP=主节点IP或主节点IP映射名称(我这边是:master) export SPARK_MASTER_PORT=主节点启动端口(默认7077) export PARK_MASTER_WEBUI_PORT=集群web监控页面端口(默认8080) export SPARK_WORKER_CORES=从节点工做的CPU核心数目(默认1) export SPARK_WORKER_PORT=从节点启动端口(默认7078) export SPARK_WORKER_MEMORY=分配给Spark master和 worker 守护进程的内存空间(默认512m) export SPARK_WORKER_WEBUI_PORT=从节点监控端口(默认8081) export SPARK_WORKER_INSTANCES=每台从节点上运行的worker数量 (默认: 1). PS:当你有一个很是强大的计算的时候和须要多个Spark worker进程的时候你能够修改这个默认值大于1 . 若是你设置了这个值。要确保SPARK_WORKER_CORE 明确限制每个worker的核心数, 不然每一个worker 将尝试使用全部的核心。
3. 我这边的yarn部署是按照spark配置文件的默认部署的,若是你想根据实际状况来部署的话,能够修改一下文件:
# - HADOOP_CONF_DIR, to point Spark towards Hadoop configuration files # - SPARK_EXECUTOR_INSTANCES, Number of workers to start (Default: 2) # - SPARK_EXECUTOR_CORES, Number of cores for the workers (Default: 1). # - SPARK_EXECUTOR_MEMORY, Memory per Worker (e.g. 1000M, 2G) (Default: 1G) # - SPARK_DRIVER_MEMORY, Memory for Master (e.g. 1000M, 2G) (Default: 512 Mb) # - SPARK_YARN_APP_NAME, The name of your application (Default: Spark) # - SPARK_YARN_QUEUE, The hadoop queue to use for allocation requests # - SPARK_YARN_DIST_FILES, Comma separated list of files to be distributed with the job. # - SPARK_YARN_DIST_ARCHIVES, Comma separated list of archives to be distributed with the job.
iii. Spark文件复制:
将配置好的Spark文件复制到各个从节点slave对应的目录上:
scp spark-1.3.1-bin-hadoop2.6/ root@slave1:/root/app scp spark-1.3.1-bin-hadoop2.6/ root@slave2:/root/app scp spark-1.3.1-bin-hadoop2.6/ root@slave3:/root/app
六、 Spark On Yarn的集群启动:
a) Yarn的启动:
i. 先进入hadoop目录下
ii. ./sbin/start-all.sh
iii. jps发现有ResourceManager进程,说明yarn启动完成
b) Spark的启动:
i. 先进入spark目录下
ii. ./sbin/start-all.sh
iii. jps主节点发现有Master进程,jps从节点有Worker进程,说明spark启动完成
c) Spark监控页面,我就不测试了,通常都是masterIP:8080,若有打不开监控页面的问题也是防火墙没有被禁用的问题,请参看个人博文《Hadoop环境搭建过程当中可能遇到的问题》 里面的问题2有详细说明。
七、至此,Spark On Yarn的集群搭建完成。