乐趣区

关于spark:Spark-分布式高可用集群安装

筹备工作

下载地址

官网
下载页面有个 Spark release archives,点击能够查看历史版本

我这里抉择的是 spark-2.4.5,因为我 Hadoop 抉择的是 2.7.7 版本,所以下载的是 spark-2.4.5-bin-hadoop2.7.tgz。

环境依赖

Spark-2.4.5 依赖的 java 和 scala 版本散布为 Java8 和 Scala 2.12。装置过程略。

我本机的版本:

集群布局

角色 节点
Master bigdata01,bigdata03
Salve bigdata01,bigdata02,bigdata03,bigdata04
Spark HistoryServer bigdata02

分布式高可用装置

上传安装包并解压到对应目录:

tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /home/bigdata/apps/

批改配置文件 spark-env.sh:

[bigdata@bigdata01 apps]$ cd /home/bigdata/apps/spark-2.4.5-bin-hadoop2.7/conf
[bigdata@bigdata01 conf]$ ll
total 36
-rw-r--r-- 1 bigdata bigdata  996 Feb  3  2020 docker.properties.template
-rw-r--r-- 1 bigdata bigdata 1105 Feb  3  2020 fairscheduler.xml.template
-rw-r--r-- 1 bigdata bigdata 2025 Feb  3  2020 log4j.properties.template
-rw-r--r-- 1 bigdata bigdata 7801 Feb  3  2020 metrics.properties.template
-rw-r--r-- 1 bigdata bigdata  865 Feb  3  2020 slaves.template
-rw-r--r-- 1 bigdata bigdata 1292 Feb  3  2020 spark-defaults.conf.template
-rwxr-xr-x 1 bigdata bigdata 4221 Feb  3  2020 spark-env.sh.template
[bigdata@bigdata01 conf]$ mv spark-env.sh.template spark-env.sh
[bigdata@bigdata01 conf]$ vim spark-env.sh 

在 spark-env.sh 前面增加如下内容:

export JAVA_HOME=/usr/local/java/jdk1.8.0_73 
# master 端口
export SPARK_MASTER_PORT=7077 
# 通过 zk 做高可用
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata01,bigdata02,bigdata03 -Dspark.deploy.zookeeper.dir=/spark"

配置 slave 信息:

[bigdata@bigdata01 conf]$ mv slaves.template slaves
[bigdata@bigdata01 conf]$ vim slaves

在 slave 前面增加如下内容:

bigdata01
bigdata02
bigdata03 
bigdata04

拷贝 hdfs 的配置文件到这里的 conf 目录:

[bigdata@bigdata01 conf]$ cd /home/bigdata/apps/hadoop-2.7.7/etc/hadoop
[bigdata@bigdata01 hadoop]$ cp core-site.xml hdfs-site.xml /home/bigdata/apps/spark-2.4.5-bin-hadoop2.7/conf

把 spark-2.4.5-bin-hadoop2.7 散发到 bigdata02、bigdata03、bigdata04 服务器:

[bigdata@bigdata01 hadoop]$ cd /home/bigdata/apps
[bigdata@bigdata01 apps]$ scp -r spark-2.4.5-bin-hadoop2.7/ bigdata02:$PWD
[bigdata@bigdata01 apps]$ scp -r spark-2.4.5-bin-hadoop2.7/ bigdata03:$PWD
[bigdata@bigdata01 apps]$ scp -r spark-2.4.5-bin-hadoop2.7/ bigdata04:$PWD

配置环境变量:

[bigdata@bigdata01 apps]$ vim ~/.bashrc

在内容前面增加 Spark 配置信息:

export SPARK_HOME=/home/bigdata/apps/spark-2.4.5-bin-hadoop2.7 
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

配置失效:

[bigdata@bigdata01 apps]$ source ~/.bashrc

bigdata02、bigdata03、bigdata04 服务器几个也须要如上配置。
启动 spark 集群,因为咱们布局是 bigdata01 和 bigdata03 是 Master,所以在这两个服务器别离执行:

# bigdata01 执行
[bigdata@bigdata01 apps]$ $SPARK_HOME/sbin/start-all.sh
# bigdata03 执行
[bigdata@bigdata03 ~]$ $SPARK_HOME/sbin/start-master.sh

jps 查看,bigdata01、bigdata03 具备 Master 和 Worker 两个节点,bigdata02、bigdata04 只有 Worker 节点。

查看 web 页面:
bigdata01:http://bigdata01:8080/,能够看到 4 个 worker,以及此时没有工作在跑。

bigdata03:http://bigdata03:8080/,能够看到这里没有 worker 信息,他的 Status 值是 STANDBY

Spark HistoryServer 装置

复制 spark-defaults.conf

[bigdata@bigdata02 conf]$ cd /home/bigdata/apps/spark-2.4.5-bin-hadoop2.7/conf/
[bigdata@bigdata02 conf]$ cp spark-defaults.conf.template spark-defaults.conf
[bigdata@bigdata02 conf]$ vim spark-defaults.conf

在前面增加:

spark.eventLog.enabled true 
spark.eventLog.dir hdfs://hadoopdajun/spark_historylog

从新编辑 spark-env.sh 文件

[bigdata@bigdata02 conf]$ vim spark-env.sh

在前面增加如下内容,用于配置日志门路以及 web 拜访端口:

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://hadoopdajun/spark_historylog"

在 Hadoop 中增加下面的门路:

[bigdata@bigdata02 conf]$ hadoop fs -mkdir -p hdfs://hadoopdajun/spark_historylog

启动 Spark HistoryServer,并查看 jps,能够看到曾经多了一个 HistoryServer

[bigdata@bigdata02 conf]$ $SPARK_HOME/sbin/start-history-server.sh
starting org.apache.spark.deploy.history.HistoryServer, logging to /home/bigdata/apps/spark-2.4.5-bin-hadoop2.7/logs/spark-bigdata-org.apache.spark.deploy.history.HistoryServer-1-bigdata02.out
[bigdata@bigdata02 conf]$ jps
2368 QuorumPeerMain
4465 Jps
1699 JournalNode
4435 HistoryServer
3928 Worker
1529 NameNode
1596 DataNode

通过 http://bigdata02:18080/ 拜访,页面如下:

退出移动版