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

相关推荐
大明者省18 小时前
大模型微调怎么实现?当然不是人工对一些参数微小调整!
大数据·人工智能
麦麦大数据18 小时前
F043 vue+flask天气预测可视化系统大数据(浅色版)+机器学习+管理端+爬虫+超酷界面+顶级可视化水平
大数据·vue.js·机器学习·flask·空气质量·天气预测·气温预测
琉璃色的星辉18 小时前
Flink-2.0.0在配置文件中修改.pid文件存储位置及其他默认参数
大数据·flink·环境配置·修改参数
大G的笔记本19 小时前
Redis 分布式锁如何保证同一时间只有一个客户端持有锁
数据库·redis·分布式
呆呆小金人19 小时前
SQL优化实战:从慢查询到高效查询
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
AI企微观察19 小时前
企业微信SCRM系统有什么作用,满足哪些功能?从获客到提效的功能适配逻辑
大数据·企业微信·scrm·企业微信scrm
Kay_Liang20 小时前
【Hive 踩坑实录】从元数据库初始化到 HiveServer2 启动的全流程问题解决
大数据·linux·hive·hadoop·笔记·mysql·ubuntu
IT学长编程20 小时前
计算机毕业设计 基于Python的电商用户行为分析系统 Django 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·hadoop·python·django·毕业设计·课程设计·电商用户行为分析系统
飞鱼&21 小时前
Kafka(文件)数据存储、清理机制、高性能设计
分布式·kafka
StarRocks_labs21 小时前
告别 Hadoop,拥抱 StarRocks!政采云数据平台升级之路
大数据·数据库·starrocks·hadoop·存算分离