如何搭建spark yarn 模式的集群集群

搭建 Spark on Yarn 模式的集群配置步骤

1. 环境准备

在搭建 Spark on Yarn 的集群之前,需要确保 Hadoop 和 YARN 已经正常部署并运行。以下是必要的准备工作:

  • 安装 Java JDK 并设置 `JAVA_HOME` 环境变量。

  • 部署 Hadoop 集群,并确认 HDFS 和 YARN 正常工作。

2. 下载与解压 Spark

下载适合版本的 Spark 压缩包,并将其解压缩至指定路径。例如:

```bash

wget https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop2.7.tgz

tar -xzvf spark-3.0.0-bin-hadoop2.7.tgz

mv spark-3.0.0-bin-hadoop2.7 /usr/local/spark

```

3. 修改 Spark 配置文件

进入 Spark 的配置目录 `/usr/local/spark/conf`,并对以下文件进行修改:

(1) `spark-env.sh`

创建或编辑该文件以设置环境变量:

```bash

export SPARK_DIST_CLASSPATH=$(hadoop classpath)

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export HADOOP_CONF_DIR=/etc/hadoop/conf

```

此操作是为了让 Spark 能够识别 Hadoop 的类路径以及相关配置。

(2) `spark-defaults.conf`

启用事件日志记录功能以便于调试和监控:

```properties

spark.eventLog.enabled true

spark.eventLog.dir hdfs://<namenode-host>:9820/spark/eventLogs

spark.eventLog.compress true

spark.yarn.historyServer.address <history-server-host>:18080

spark.yarn.jars hdfs://<namenode-host>:9820/spark/jars/*

```

其中 `<namenode-host>` 是 HDFS NameNode 的主机名,而 `<history-server-host>` 则是 Spark History Server 所在的主机名称。

(3) `slaves`

如果计划使用独立模式作为备用方案,则需在此处定义 Worker 节点列表;但在纯 YARN 场景下可以忽略此项。

4. 启动服务

完成以上配置之后即可依次启动所需的服务组件:

  • **HDFS 和 YARN**: 使用命令 `start-dfs.sh` 及 `start-yarn.sh` 来开启分布式存储系统及其资源调度框架;

  • **Spark History Server**: 如果启用了历史服务器支持的话,可通过执行脚本来激活它:

```bash

sbin/start-history-server.sh

```

5. 提交作业测试

最后通过提交一个简单的例子来验证整个流程是否通畅无误。比如利用 Cluster Mode 方式运行经典的 Pi 计算案例:

```bash

./bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 1 \

examples/jars/spark-examples*.jar 10

```

这里指定了驱动器内存大小为 1GB (`--driver-memory`) ,每个执行者分配同样容量(`--executor-memory`)加上单核 CPU 处理能力(`--executor-cores`). 参数后面跟着的是 JAR 文件位置连同其主入口函数参数值.


注意事项

为了保证最佳性能体验,在实际生产环境中可能还需要进一步调整更多高级选项如动态分配策略等细节设定。

相关推荐
阿里云大数据AI技术1 天前
StarRocks x Fluss x Paimon湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
大数据·人工智能
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
喵个咪1 天前
Go Wind UBA 拆解系列 - 架构总览:三服务、数据流与契约优先
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - 多租户与安全:两套隔离机制的边界
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - OLAP 与 SQL 硬核:25 个分析模型怎么落地
大数据·后端·go
喵个咪1 天前
Go Wind UBA 拆解系列 - SDK 与采集层:从浏览器到 Kafka
大数据·后端·go
QCC产品中心1 天前
MiniMax Agent 接入实测:企业查询、股权穿透与 UBO 识别(附 Prompt 模板)
大数据·mcp·金融/非金融
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
ApacheSeaTunnel2 天前
当多表数据涌入,Apache SeaTunnel 如何巧妙化解主键冲突?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
大大大大晴天5 天前
Hudi Metadata Table 与 Hive Sync (HMS)怎么选?
大数据