如何搭建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 文件位置连同其主入口函数参数值.


注意事项

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

相关推荐
极客116 小时前
数字智慧方案6169丨智慧医院后勤管理解决方案(58页PPT)(文末有下载方式)
大数据
豪越大豪7 小时前
豪越科技消防立库方案:实现应急物资高效管理
大数据·运维
小咕聊编程14 小时前
【含文档+PPT+源码】基于大数据的交通流量预测系统
大数据·python·django
BD_Marathon15 小时前
Anaconda中配置Pyspark的Spark开发环境
大数据·分布式·spark
lisacumt16 小时前
【jceks】使用keytool和hadoop credential生成和解析jceks文件(无密码storepass)
大数据·hadoop·分布式
北随琛烬入17 小时前
Spark(23)Spark集群搭建之Yarn模式
大数据·spark
一条行走的鱼19 小时前
Elasticsearch入门速通01:核心概念与选型指南
大数据·elasticsearch·搜索引擎
by————组态19 小时前
基于web组态优化策略研究
大数据·前端·物联网·低代码·数学建模·自动化
什么芮.20 小时前
大数据应用开发和项目实战(2)
大数据·pytorch·sql·spark·scala