官网下载:下载 Spark 安装包, 下载时候选择对应的 Hadoop 版本,然后上传到虚拟机上
# 解压 Spark 安装包 tar xzvf spark-2.2.0-bin-hadoop2.7.tgz # 移动 Spark 安装包 mv spark-2.2.0-bin-hadoop2.7.tgz /export/servers/spark
# 指定 Java Home export JAVA_HOME=/export/servers/jdk1.8.0 # 指定 Spark Master 地址 export SPARK_MASTER_HOST=node01 export SPARK_MASTER_PORT=7077
修改配置文件 slaves
, 以指定从节点为止, 从在使用 sbin/start-all.sh
启动集群的时候, 可以一键启动整个集群所有的 Worker
cd /export/servers/spark/conf
cp slaves.template slaves
vi slaves
node02
node03
HistoryServer
默认情况下, Spark 程序运行完毕后, 就无法再查看运行记录的 Web UI 了, 通过 HistoryServer 可以提供一个服务, 通过读取日志文件, 使得我们可以在程序运行结束后, 依然能够查看运行过程
spark-defaults.conf
, 以供修改cd /export/servers/spark/conf cp spark-defaults.conf.template spark-defaults.conf vi spark-defaults.conf
spark.eventLog.enabled true spark.eventLog.dir hdfs://node01:8020/spark_log spark.eventLog.compress true
# 指定 Spark History 运行参数 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node01:8020/spark_log"
hdfs dfs -mkdir -p /spark_log
cd /export/servers scp -r spark node02:$PWD scp -r spark node03:$PWD
cd /export/servers/spark sbin/start-all.sh sbin/start-history-server.sh
对于 Spark Standalone 集群来说, 当 Worker 调度出现问题的时候, 会自动的弹性容错, 将出错的 Task 调度到其它 Worker 执行
但是对于 Master 来说, 是会出现单点失败的, 为了避免可能出现的单点失败问题, Spark 提供了两种方式满足高可用
使用 Zookeeper 实现 Masters 的主备切换
使用文件系统做主备切换
cd /export/servers/spark
sbin/stop-all.sh
增加 Spark 运行时参数, 从而指定 Zookeeper 的位置
spark-env.sh
cd /export/servers/spark/conf
vi spark-env.sh
spark-env.sh
, 添加 Spark 启动参数, 并去掉 SPARK_MASTER_HOST 地址# 指定 Java Home export JAVA_HOME=/export/servers/jdk1.8.0_141 # 指定 Spark Master 地址 # export SPARK_MASTER_HOST=node01 export SPARK_MASTER_PORT=7077 # 指定 Spark History 运行参数 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node01:8020/spark_log" # 指定 Spark 运行时参数 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181 -Dspark.deploy.zookeeper.dir=/spark"
cd /export/servers scp -r spark node02:$PWD scp -r spark node03:$PWD
node01
上启动整个集群cd /export/servers/spark sbin/start-all.sh sbin/start-history-server.sh
node02
上单独再启动一个 Mastercd /export/servers/spark
sbin/start-master.sh
node01 master
和 node02 master
的 WebUIALIVE(主)
, 另外一个是 STANDBY(备)
# 在 Node01 中执行如下指令 cd /export/servers/spark/ sbin/stop-master.sh
原文:https://www.cnblogs.com/MoooJL/p/14243405.html