spark配置
Last Update:
将所有指向其他节点(如 node01, node02)的操作都指向本机 (localhost),并简化分发和多节点启动的步骤。
1. 前提条件
这一步与教程一致。请确保您的伪分布式Hadoop集群(HDFS和YARN)能够正常运行。
- Hadoop已正确配置。
- Java环境已就绪(推荐JDK 8)。
2. 下载并解压 Spark
这一步也完全相同。您可以按照教程中的说明下载、上传并解压Spark。
1 | |
3. 配置环境变量
这一步的配置内容完全一样。因为Spark需要知道Hadoop的配置文件在哪里。
1 | |
在文件末尾添加:
1 | |
使配置生效:
1 | |
4. 配置 Spark
这是需要修改的关键步骤之一。
进入Spark配置目录:
1 | |
复制模板文件(这步和教程一样):
1 | |
修改 spark-env.sh 文件:
1 | |
主要修改 SPARK_MASTER_HOST 为您虚拟机的IP地址或者直接使用 localhost。
1 | |
5. 配置 workers 文件
这是另一个关键修改点。在伪分布式环境中,Master节点同时也是Worker节点。
1 | |
将文件中的所有内容删除,只保留一行:
1 | |
6. 配置 Spark 与 YARN 集成
这一步是为了让Spark程序能运行在YARN上,对于伪分布式环境同样适用。
创建 spark-defaults.conf 文件:
1 | |
编辑 spark-defaults.conf 文件:
1 | |
添加以下内容,注意修改IP地址为您虚拟机的IP或 localhost。
1 | |
7. 分发 Spark 到所有节点
在伪分布式环境中,此步骤完全不需要,因为您只有一个节点。
8. 准备 HDFS 目录
这一步与教程完全相同,目的是在HDFS上创建Spark运行所必需的目录。
1 | |
9. 启动 Spark 集群
教程中的启动命令有些混杂,这里为您梳理一下伪分布式环境下的正确启动方式。
方式一:启动Spark独立集群(Standalone模式)
如果您想先体验Spark自身的集群模式,可以这样启动。
1 | |
方式二:不启动Spark独立集群,直接使用YARN
由于我们在第6步 spark-defaults.conf 中已经指定了 spark.master 为 yarn,因此我们无需启动Spark的Master和Worker进程 (start-all.sh)。我们只需要保证Hadoop的YARN是启动的即可。
1 | |
启动历史服务器(两种方式下都需要):
这个服务是独立的,用于查看已完成的Spark应用。
1 | |
10. 查看Spark进程
使用 jps 命令查看进程。
- 如果使用方式一 (Standalone) 启动,您应该能看到
Master和Worker进程。 - 如果使用方式二 (YARN),您不会看到
Master和Worker进程,这是正常的。 - 无论哪种方式,只要启动了历史服务器,就应该能看到
SparkHistoryServer进程。
11. 访问Web端测试
- Spark Master Web UI (仅限Standalone模式):
http://localhost:8080/ - YARN ResourceManager Web UI:
http://localhost:8088/(您可以通过这里查看提交到YARN上的Spark任务) - Spark History Server Web UI:
http://localhost:18080/
12. 验证集群可用性(提交测试任务)
测试一:提交到 Spark Standalone 集群
(请确保您已通过 $SPARK_HOME/sbin/start-all.sh 启动了独立集群)
1 | |
测试二:提交到 YARN 集群
(请确保您的YARN已启动,并且您没有启动Spark的 start-all.sh)
1 | |
注意:提交到YARN时,参数略有不同。我们使用 --master yarn 来指定资源管理器,并用 --num-executors 和 --executor-cores 来控制资源。
看到圆周率π的计算结果输出,即代表您在伪分布式环境上配置Spark成功!