如何搭建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 模式的集群。

相关推荐
JAVA学习通1 天前
【RabbitMQ】---RabbitMQ 工作流程和 web 界面介绍
分布式·rabbitmq
嘉禾望岗5031 天前
Yarn介绍与HA搭建
大数据·hadoop·yarn
小麦矩阵系统永久免费1 天前
小麦矩阵系统:让短视频分发实现抖音快手小红书全覆盖
大数据·人工智能·矩阵
IT研究室1 天前
大数据毕业设计选题推荐-基于大数据的国家药品采集药品数据可视化分析系统-Spark-Hadoop-Bigdata
大数据·hadoop·信息可视化·spark·毕业设计·数据可视化·bigdata
安卓开发者1 天前
鸿蒙NEXT应用数据持久化全面解析:从用户首选项到分布式数据库
数据库·分布式·harmonyos
Lx3521 天前
Hadoop性能瓶颈分析:从JVM到磁盘IO的全链路优化
大数据·hadoop
大数据点灯人1 天前
【Flink】Flink Runtime 开发指南
大数据·flink
一个java开发1 天前
distributed.client.Client 用户可调用函数分析
大数据·python
JAVA学习通1 天前
【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ
分布式·rabbitmq
字节数据平台1 天前
一客一策:Data Agent 如何重构大模型时代的智能营销
大数据·人工智能·重构