如何搭建spark yarn模式的集群

一、环境准备​

1. 操作系统​

建议使用 Linux 系统,如 CentOS 7 或 Ubuntu 18.04。以 CentOS 7 为例,确保集群中所有节点的操作系统版本一致,并且已经安装好常用的基础软件包,如wget、vim等。可以通过以下命令安装:​

Scala 复制代码
sudo yum install wget vim -y

​2. JDK 安装​

Spark 运行依赖 Java 环境,需要在集群的每个节点上安装 JDK 8 或更高版本。从 Oracle 官网下载 JDK 安装包,上传至服务器后,通过以下命令解压安装:​​

Scala 复制代码
tar -zxvf jdk-1.8.0_371.tar.gz -C /usr/local/​

​然后配置环境变量,编辑/etc/profile文件,在文件末尾添加以下内容:​

Scala 复制代码
export JAVA_HOME=/usr/local/jdk1.8.0_371​

export PATH=$JAVA_HOME/bin:$PATH​

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar​

​使配置生效:​

Scala 复制代码
source /etc/profile​

​验证 JDK 是否安装成功,执行 java -version 命令,若能正确显示 JDK 版本信息,则安装成功。​

3. SSH 免密登录配置​

为了方便集群节点之间的通信,需要配置 SSH 免密登录。在主节点上执行以下命令生成密钥对:​

Scala 复制代码
ssh-keygen -t rsa​

一路回车使用默认设置,生成的密钥对位于 ~/.ssh/ 目录下。然后将公钥复制到各个从节点,假设从节点 IP 为192.168.1.101192.168.1.102,执行以下命令:​

Scala 复制代码
ssh-copy-id 192.168.1.101​

ssh-copy-id 192.168.1.102​

输入密码后,即可实现主节点到从节点的免密登录。同时,在每个从节点上也执行上述步骤,实现从节点之间的免密登录。​

二、Hadoop 安装与配置​

1. 下载 Hadoop​

从 Apache 官网下载适合的 Hadoop 版本,如 Hadoop 3.3.4。下载完成后,上传至服务器,解压到指定目录:​

Scala 复制代码
tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local/​

2. 配置 Hadoop 环境变量​

编辑 /etc/profile 文件,在文件末尾添加以下内容:​

Scala 复制代码
export HADOOP_HOME=/usr/local/hadoop-3.3.4​

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH​

使配置生效:​

Scala 复制代码
source /etc/profile​

​3. 核心配置文件修改​

(1)core-site.xml​

该文件用于配置 Hadoop 的核心属性,编辑 $HADOOP_HOME/etc/hadoop/core-site.xml 文件,添加以下内容:​​

Scala 复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-3.3.4/tmp</value>
    </property>
</configuration>

其中,fs.defaultFS 指定 HDFS 的地址,master为主节点主机名;hadoop.tmp.dir 指定 Hadoop 临时文件存储目录。​

(2)hdfs-site.xml​

编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件,添加以下内容:​

Scala 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop-3.3.4/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop-3.3.4/dfs/data</value>
    </property>
</configuration>

dfs.replication指定数据块的副本数,根据实际情况调整;

dfs.namenode.name.dir 和 dfs.datanode.data.dir 分别指定 NameNode 和 DataNode 的数据存储目录。​

(3)mapred-site.xml​

将 $HADOOP_HOME/etc/hadoop/mapred-site.xml.template 文件复制为 mapred-site.xml,然后编辑该文件,添加以下内容:​

Scala 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

该配置指定 MapReduce 使用 YARN 作为资源管理框架。​

(4)yarn-site.xml​

编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件,添加以下内容:​

Scala 复制代码
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

yarn.resourcemanager.hostname 指定 ResourceManager 所在的主机名;yarn.nodemanager.aux-services 指定 NodeManager 辅助服务,用于支持 MapReduce 的 Shuffle 过程。​

4. 格式化 HDFS​

在主节点上执行以下命令格式化 HDFS:​

Scala 复制代码
hdfs namenode -format

5. 启动 Hadoop 集群​

在主节点上执行以下命令启动 Hadoop 集群:​

Scala 复制代码
start-dfs.sh
start-yarn.sh

可以通过浏览器访问 http://master:9870 查看 HDFS 的 Web 界面,访问 http://master:8088 查看 YARN 的 Web 界面,确认 Hadoop 集群是否正常启动。​

三、Spark 安装与配置​

1. 下载 Spark​

从 Spark 官网下载适合的 Spark 版本,如 Spark 3.3.2。下载完成后,上传至服务器,解压到指定目录:​

Scala 复制代码
tar -zxvf spark-3.3.2-bin-hadoop3.tgz -C /usr/local/​

2. 配置 Spark 环境变量​

编辑/etc/profile文件,在文件末尾添加以下内容:​

Scala 复制代码
export SPARK_HOME=/usr/local/spark-3.3.2-bin-hadoop3
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

使配置生效:​

Scala 复制代码
source /etc/profile

3. 配置 Spark 集群​

编辑$SPARK_HOME/conf/spark-env.sh.template文件,复制为spark-env.sh,然后添加以下内容:​

Scala 复制代码
export JAVA_HOME=/usr/local/jdk1.8.0_371
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.4/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_CORES=2

JAVA_HOME 指定 JDK 安装目录;HADOOP_CONF_DIR指定 Hadoop 配置文件目录;SPARK_MASTER_IP 指定 Spark Master 的 IP 地址;SPARK_WORKER_MEMORY 和SPARK_WORKER_CORES 分别指定每个 Worker 节点的内存和核心数,可根据实际情况调整。​

编辑 $SPARK_HOME/conf/slaves.template 文件,复制为 slaves ,在文件中添加从节点的主机名或 IP 地址,每行一个,例如:​

Scala 复制代码
slave1
slave2

4. 启动 Spark 集群​

在主节点上执行以下命令启动 Spark 集群:​

Scala 复制代码
start-all.sh

可以通过浏览器访问 http://master:8080 查看 Spark 集群的 Web 界面,确认 Spark 集群是否正常启动。​

四、测试集群​

1. 上传测试数据到 HDFS​

在本地准备一个测试数据文件,如 test.txt,然后上传到 HDFS:​

Scala 复制代码
hdfs dfs -mkdir /input
hdfs dfs -put test.txt /input

2. 运行 Spark 示例程序​

执行一个简单的 WordCount 示例程序,统计文件中的单词数量:​

Scala 复制代码
spark-submit \
--class org.apache.spark.examples.JavaWordCount \
--master yarn \
/usr/local/spark-3.3.2-bin-hadoop3/examples/jars/spark-examples_2.12-3.3.2.jar \
hdfs://master:9000/input/test.txt \
hdfs://master:9000/output

程序执行完成后,可以通过以下命令查看结果:​

Scala 复制代码
hdfs dfs -cat /output/part-*.txt

通过以上步骤,我们成功搭建了 Spark YARN 模式的集群,并进行了简单的测试。在实际应用中,可以根据业务需求对集群进行进一步的优化和扩展,充分发挥 Spark YARN 集群在大数据处理中的强大性能。

相关推荐
大大大大晴天7 小时前
每天认识一个组件:数据治理Apache Atlas
大数据
数字新视界7 小时前
2026模块化机房选型指南:行业市场发展趋势、占有率与竞争梯队分析报告解析
大数据·人工智能·物联网·数据中心·微模块机房·模块化机房·冷通道
姜穆澜9 小时前
OneID 从 0 到 1 完整生产案例(四)
大数据
OsDepK10 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
合米AI SOP系统10 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo10 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
xiaohaiAIgeo11 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
林墨聊AIGC11 小时前
动漫AI视频创作工具在哪找到的?2026年最新动漫AI视频平台与软件指南
大数据·人工智能·ai作画·aigc·音视频
故七月12 小时前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
数字孪生视频孪生14 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构