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:配置SparkHadoop的集成

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

Worker1Worker2节点应有: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的安装与配置!!!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐