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

相关推荐
大嘴皮猴儿20 分钟前
从零开始学商品图翻译:小白也能快速掌握的多语言文字处理与上架技巧
大数据·ide·人工智能·macos·新媒体运营·xcode·自动翻译
雷工笔记28 分钟前
《为什么 10 倍增长比 2 倍更容易》读书笔记:反内卷的指数级增长破局法
大数据
captain_AIouo32 分钟前
OZON航海引领者Captain AI指引运营新航向
大数据·人工智能·经验分享·aigc
Ssan PRIN40 分钟前
深度掌握 RabbitMQ 消息确认(ACK)机制,确保消息万无一失
分布式·rabbitmq
切糕师学AI1 小时前
深入理解 CAP 定理:分布式系统中的一致性、可用性与分区容错
分布式·cap
K3v2 小时前
【git】删除本地以及远端已经合并到master的分支
大数据·git·elasticsearch
53AI3 小时前
智能调度赋能交通行业:从经验驱动到数据智能的跨越
大数据·人工智能·知识库·智能调度·53ai
黎阳之光3 小时前
黎阳之光核工厂202应急管控平台|全域实景孪生,筑牢核安全最后一道防线
大数据·人工智能·算法·安全·数字孪生
roman_日积跬步-终至千里4 小时前
【系统架构设计师-综合题-知识点(1)】系统工程与信息技术基础
大数据
Elastic 中国社区官方博客4 小时前
Elasticsearch:快速近似 ES|QL - 第二部分
大数据·数据库·sql·elasticsearch·搜索引擎·全文检索