14-Spark的安装与配置(Spark Standalone)
Spark的安装与配置
一、知识目标
理解Spark分布式计算框架的基本概念、架构及其在大数据生态系统中的角色定位。
掌握Spark与Hadoop、HDFS等组件的协同工作原理和依赖关系。
了解Spark的运行模式(Local、Standalone、YARN、Mesos)及适用场景。
二、技能目标
能够完成Spark的安装、环境变量配置和Standalone集群部署。
掌握Spark集群的启动、停止操作。
能够通过Spark Shell和Web界面验证Spark集群运行状态。
三、素质目标
培养耐心和细致的调试精神,能够在复杂的系统环境中保持清晰的逻辑思维。
提升在多节点环境下的协同配置和一致性管理意识,注重配置细节的准确性。
四、重难点
重点:Spark在Linux系统中的完整安装流程与关键配置。
难点:Spark配置文件参数的正确设置与集群节点间的服务协同,Spark与Hadoop的集成配置。
五、任务描述
本次任务是Spark的安装与配置。
最终效果:
能够正常启动Spark集群(Master和Worker进程)
能够通过Spark Shell执行简单的计算任务
能够正常访问Spark Web界面(http://master:8080)
六、环境要求
CentOS(Linux操作系统)
Java环境 JDK 1.8 或更高版本
Hadoop集群(HDFS已配置,端口为8020)
Scala环境(Spark 2.x及以上版本内置Scala,无需单独安装)
七、任务实施
步骤1:解压安装文件
上传Spark安装包到master节点的/opt/packages目录

进入到/opt/packages目录下,解压Spark安装包到指定目录:
tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz -C /opt/programs/
进入到/opt/packages目录下,重命名目录:
mv spark-3.1.1-bin-hadoop3.2 spark
步骤2:配置环境变量
进入到/etc目录下编辑环境变量配置文件:
vi profile
添加以下内容:
# SPARK_HOME
export SPARK_HOME=/opt/programs/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

使配置生效:
source /etc/profile
验证配置
echo $SPARK_HOME

步骤3:修改Spark配置文件
3.1 进入到/opt/programs/spark/conf目录下,复制配置文件模板
复制并重命名配置文件
cp spark-env.sh.template spark-env.sh
cp workers.template workers
cp spark-defaults.conf.template spark-defaults.conf
3.2 进入到/opt/programs/spark/conf目录下,修改 spark-env.sh
vi spark-env.sh
在文件末尾添加以下配置内容:
export JAVA_HOME=/opt/module/jdk1.8
export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
# Spark Master主机名
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
# Spark Master Web界面端口
export SPARK_MASTER_WEBUI_PORT=8080
# Spark Worker资源分配
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_INSTANCES=1
# Spark历史服务器端口
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080"
# 设置Spark使用Hadoop YARN模式(可选)
export SPARK_YARN=true
# 设置日志级别
export SPARK_LOG_DIR=/opt/programs/spark/logs
注意:复制后需把中文删除。

3.3 进入到/opt/programs/spark/conf/目录下,修改 workers 文件
vi workers
清空文件原有内容,添加以下内容:
master
worker1
worker2

3.4 进入到/opt/programs/spark/conf/目录下,修改 spark-defaults.conf(可选)
vi spark-defaults.conf
添加以下内容:
# Spark Master地址
spark.master spark://master:7077
# Spark事件日志配置
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:8020/spark-event-log
# Spark历史服务器配置
spark.history.fs.logDirectory hdfs://master:8020/spark-event-log
# 序列化配置
spark.serializer org.apache.spark.serializer.KryoSerializer
# 动态资源分配
spark.dynamicAllocation.enabled false
注意:复制后需把中文删除。

步骤4:配置Spark与Hadoop的集成
4.1 在master节点上创建HDFS上的日志目录
# 启动Hadoop集群
输入集群启动命令
在HDFS上创建Spark事件日志目录
hdfs dfs -mkdir -p /spark-event-log
设置目录权限
hdfs dfs -chmod 777 /spark-event-log
4.2 配置Spark引用Hadoop配置文件
Spark会自动读取HADOOP_CONF_DIR指向的Hadoop配置文件,确保core-site.xml和hdfs-site.xml可访问:
进入/opt/module/hadoop-3.1.3/etc/hadoop/目录下,验证Hadoop配置文件存在
ls -l core-site.xml
ls -l hdfs-site.xml
步骤5:在master节点上分发Spark到其他节点
进入到/opt/programs/目录下,将spark分发到worker1节点
scp -r spark root@worker1:/opt/programs/
进入到/opt/programs/目录下,将spark分发到worker2节点
scp -r spark root@worker2:/opt/programs/
再进入master节点的etc目录下,发送profile文件到worker1节点
scp -r profile root@worker1:/etc
在worker1节点,使配置生效
source /etc/profile
再进入master节点的etc目录下,发送profile文件到worker2节点
scp -r profile root@worker2:/etc
在worker2节点,使配置生效
source /etc/profile
步骤6:启动与验证
6.1 查看Spark版本
spark-submit --version

6.2 启动Hadoop集群
输入集群启动命令
6.3 在master节点上启动Spark集群
在所有配置了workers文件的节点上启动 Master + Worker
$SPARK_HOME/sbin/start-all.sh

6.4 检查进程状态
查看Java进程
jps
Master节点应有:Master、Worker、Jps

Worker1和Worker2节点应有:Worker、Jps

6.5 验证Spark Shell
启动Spark Shell(连接到Standalone集群)
spark-shell --master spark://master:7077

在Spark Shell中执行以下命令验证:
/创建一个RDD
val data = 1 to 100
val rdd = sc.parallelize(data)
// 执行计算
val sum = rdd.reduce(_ + _)
println(s"Sum: $sum")

// 退出
:quit
6.6 提交示例任务
# 提交Spark自带的Pi计算示例
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 1g \
--total-executor-cores 2 \
/opt/programs/spark/examples/jars/spark-examples_2.12-3.1.1.jar \
100

6.7 访问Web界面
在浏览器中访问以下地址:
Spark Master Web界面:http://master:8080

进入 Spark 的 sbin 目录
cd $SPARK_HOME/sbin
启动 History Server
./start-history-server.sh
Spark History Server:http://master:18080
Master节点应有: Master、Worker、HistoryServer、Jps


恭喜你,学会了Spark的安装与配置!!!
更多推荐



所有评论(0)