一 下载安装包
1 官方下载
官方下载地址:http://spark.apache.org/downloads.html
2 安装前提
- Java8 安装成功
- zookeeper 安装参考:CentOS7.5搭建Zookeeper3.4.12集群
- hadoop 安装参考:CentOS7.5搭建Hadoop2.7.6集群
- Scala 安装成功
注意:从Spark2.0版开始,默认使用Scala 2.11构建。Scala 2.10用户应该下载Spark源包并使用Scala 2.10支持构建 。
3 集群规划
节点名称 | IP | Zookeeper | Master | Worker |
node21 | 192.168.100.21 | Zookeeper |
主Master | |
node22 | 192.168.100.22 | Zookeeper |
备Master | Worker |
node23 | 192.168.100.23 | Zookeeper |
Worker |
二 集群安装
1 解压缩
[admin@node21 software]$ tar zxvf spark-2.3.1-bin-hadoop2.7.tgz -C /opt/module/ [admin@node21 module]$ mv spark-2.3.1-bin-hadoop2.7 spark-2.3.1
2 修改配置文件
(1)进入配置文件所在目录
[admin@node21 ~]$ cd /opt/module/spark-2.3.1/conf/ [admin@node21 conf]$ ll total 36 -rw-rw-r-- 1 admin admin 996 Jun 2 04:49 docker.properties.template -rw-rw-r-- 1 admin admin 1105 Jun 2 04:49 fairscheduler.xml.template -rw-rw-r-- 1 admin admin 2025 Jun 2 04:49 log4j.properties.template -rw-rw-r-- 1 admin admin 7801 Jun 2 04:49 metrics.properties.template -rw-rw-r-- 1 admin admin 870 Jul 4 23:50 slaves.template -rw-rw-r-- 1 admin admin 1292 Jun 2 04:49 spark-defaults.conf.template -rwxrwxr-x 1 admin admin 4861 Jul 5 00:25 spark-env.sh.template
(2)复制spark-env.sh.template并重命名为spark-env.sh
[admin@node21 conf]$ cp spark-env.sh.template spark-env.sh [admin@node21 conf]$ vi spark-env.sh
编辑并在文件末尾添加如下配置内容
#指定默认master的ip或主机名 export SPARK_MASTER_HOST=node21 #指定maaster提交任务的默认端口为7077 export SPARK_MASTER_PORT=7077 #指定masster节点的webui端口 export SPARK_MASTER_WEBUI_PORT=8080 #每个worker从节点能够支配的内存数 export SPARK_WORKER_MEMORY=1g #允许Spark应用程序在计算机上使用的核心总数(默认值:所有可用核心) export SPARK_WORKER_CORES=1 #每个worker从节点的实例(可选配置) export SPARK_WORKER_INSTANCES=1 #指向包含Hadoop集群的(客户端)配置文件的目录,运行在Yarn上配置此项 export HADOOP_CONF_DIR=/opt/module/hadoop-2.7.6/etc/hadoop #指定整个集群状态是通过zookeeper来维护的,包括集群恢复 export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node21:2181,node22:2181,node23:2181 -Dspark.deploy.zookeeper.dir=/spark"
(3)复制slaves.template成slaves,并修改配置内容
[admin@node21 conf]$ cp slaves.template slaves [admin@node21 conf]$ vi slaves
修改从节点
node22 node23