如何搭建spark yarn模式的集群

1. 环境准备

  • 硬件:至少准备三台服务器,可使用虚拟机替代。
  • 软件:确保所有节点安装了相同版本的 Java(建议 Java 8 或更高版本)和 Hadoop(包含 YARN)。

2. 安装和配置 Hadoop(YARN)

2.1 下载和解压 Hadoop

从 Apache 官网下载 Hadoop 压缩包,然后解压到指定目录。例如:

bash

复制代码
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/
2.2 配置 Hadoop

主要配置以下几个文件:

  • core-site.xml

xml

复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
</configuration>
  • hdfs-site.xml

xml

复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop-3.3.6/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop-3.3.6/data/datanode</value>
    </property>
</configuration>
  • yarn-site.xml

xml

复制代码
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>resourcemanager</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • mapred-site.xml

xml

复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
2.3 格式化 HDFS

在 NameNode 节点上执行:

bash

复制代码
/usr/local/hadoop-3.3.6/bin/hdfs namenode -format
2.4 启动 Hadoop

在 NameNode 节点启动 HDFS:

bash

复制代码
/usr/local/hadoop-3.3.6/sbin/start-dfs.sh

在 ResourceManager 节点启动 YARN:

bash

复制代码
/usr/local/hadoop-3.3.6/sbin/start-yarn.sh

3. 安装和配置 Spark

3.1 下载和解压 Spark

从 Apache 官网下载 Spark 压缩包,然后解压到指定目录。例如:

bash

复制代码
wget https://downloads.apache.org/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz
tar -zxvf spark-3.4.1-bin-hadoop3.tgz -C /usr/local/
3.2 配置 Spark

编辑 spark-env.sh 文件:

bash

复制代码
cp /usr/local/spark-3.4.1-bin-hadoop3/conf/spark-env.sh.template /usr/local/spark-3.4.1-bin-hadoop3/conf/spark-env.sh

添加以下内容:

bash

复制代码
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.6/etc/hadoop
export SPARK_EXECUTOR_CORES=2
export SPARK_EXECUTOR_MEMORY=2g
export SPARK_DRIVER_MEMORY=1g

4. 测试 Spark on YARN

在 Spark 目录下执行以下命令提交一个简单的 Spark 应用:

bash

复制代码
/usr/local/spark-3.4.1-bin-hadoop3/bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    /usr/local/spark-3.4.1-bin-hadoop3/examples/jars/spark-examples_2.12-3.4.1.jar \
    10

5. 常见问题处理

  • 网络问题:确保所有节点之间网络连通,防火墙允许 Hadoop 和 Spark 相关端口通信。
  • 权限问题:确保运行 Hadoop 和 Spark 的用户有足够的权限访问相关目录和文件。

通过以上步骤,你就可以成功搭建一个 Spark YARN 模式的集群。

相关推荐
深蓝电商API7 小时前
分布式事务在跨境交易中的解决方案
分布式·跨境电商·代购系统·反向海淘·代购平台·跨境代购
藦卡机器人7 小时前
中国工业机器人发展现状
大数据·人工智能·机器人
Simon_lca8 小时前
突破合规瓶颈:ZDHC Supplier to Zero(工厂零排放 - 进阶型)体系全攻略
大数据·网络·人工智能·分类·数据挖掘·数据分析·零售
黄焖鸡能干四碗9 小时前
网络安全建设实施方案(Word文件参考下载)
大数据·网络·人工智能·安全·web安全·制造
云境筑桃源哇10 小时前
马踏春风 为爱启航 | 瑞派宠物医院(南部新城旗舰店)盛大开业!打造宠物医疗新标杆!
大数据·宠物
我真会写代码11 小时前
从入门到精通:Kafka核心原理与实战避坑指南
分布式·缓存·kafka
xixixi7777711 小时前
2026 年 03 月 20 日 AI+通信+安全行业日报(来更新啦)
大数据·人工智能·安全·ai·大模型·通信
F36_9_11 小时前
大数据治理平台选型避坑:2026 年 8 大主流系统实测
大数据·数据治理
成长之路51411 小时前
【实证分析】A股上市公司企业劳动力需求数据集(2000-2023年)
大数据
奔跑的呱呱牛12 小时前
GeoJSON 在大数据场景下为什么不够用?替代方案分析
java·大数据·servlet·gis·geojson