实验内容简介:
Spark是一个分布式计算框架,常用于大数据处理。本次实验中,首先设计一个包含主节点和从节点的Spark集群架构,并在CentOS的Linux环境下进行搭建。通过下载并解压Spark安装包,配置环境变量和集群参数,部署Spark集群。接着言编写Spark应用程序,并将其打包,通过spark-submit命令将应用程序提交到Spark集群中运行,观察任务分配和执行进度,验证集群的性能和正确性。
安装步骤:
1.安装下载文件
Spark安装包下载地址: http://spark.apache.org
进入以后点击左上角download
跳转到下载页面中,提供了几个下载选项,主要是Spark release及Package type的选择。

第1项Spark release一般默认选择最新的发行版本。
第2项package type 则选择**"Pre-build with user-provided Hadoop [can use with most Hadoopdistributions]"**,可适用于多数Hadoop版本。
选择好之后,再点击第3项给出的链接就可以下载Spark了。跳转后再次点击链接即可。

2.
等待下载......
3.下载完成通过rz上传到虚拟机
下图操作在集群的主机zkpk用户下执行

4.在用户zkpk的目录下,试图解压但无权限
zkpk@scala00 \~\]$ **sudo tar -zxf \~/spark-3.5.1-bin-without-hadoop.tgz -C /usr/local/** We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. **\[sudo\] password for zkpk: zkpk is not in the sudoers file. This incident will be reported.** 用户 `zkpk` 没有在系统的 `sudoers` 文件中,因此没有权限使用 `sudo` 命令。`sudo` 允许用户以超级用户(或其他用户)的权限执行命令。要解决这个问题,需要以具有 `sudo` 权限的用户(通常是 `root` 用户)身份登录,并编辑 `sudoers` 文件来添加 `zkpk` 用户。 于是,在root用户下,执行命令:**sudovisudo** **找到类似下图的地方**  添加**zkpk ALL=(ALL:ALL) ALL** 使得`zkpk` 用户有 `sudo` 权限 保存好,切换回root用户下 **5.继续解压** 解压安装包spark-3.5.1-bin-without-hadoop.tgz至路径/usr/local: **$ sudo tar -zxf \~/spark-3.5.1-bin-without-hadoop.tgz -C /usr/local/** **$ cd /usr/local** **$ sudo mv ./spark-3.5.1-bin-without-hadoop/ ./spark # 更改文件夹名,改为spark** **$ sudo chown -R zkpk ./spark #更改用户名zkpk**  **6.配置class path** 由于已经遗忘路径,通过以下方式查找 \[zkpk@scala00 bin\]$ pwd /home/zkpk/hadoop-3.1.3/bin **\[zkpk@scala00 bin\]$ /home/zkpk/hadoop-3.1.3/bin/hadoop classpath** /home/zkpk/hadoop-3.1.3/etc/hadoop:/home/zkpk/hadoop-3.1.3/share/hadoop/common/lib/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/common/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/hdfs:/home/zkpk/hadoop-3.1.3/share/hadoop/hdfs/lib/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/hdfs/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/mapreduce/lib/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/mapreduce/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/yarn:/home/zkpk/hadoop-3.1.3/share/hadoop/yarn/lib/\*:/home/zkpk/hadoop-3.1.3/share/hadoop/yarn/\* 指定 Spark 应用程序在运行时需要的额外的类路径(classpath)是 ****export SPARK_DIST_CLASSPATH=$(/home/zkpk/hadoop-3.1.3/bin/hadoop classpath)**** 命令会执行 hadoop classpath 命令,并将输出的完整 classpath 赋值给 SPARK_DIST_CLASSPATH 环境变量。 **7.启动sparkshell成功** 