如何搭建spark yarn模式的集群

搭建 Spark on YARN 模式的集群需要完成 Hadoop 和 Spark 的安装与配置,并确保它们能够协同工作。以下是详细的搭建步骤和代码示例:

1 系统准备

  • 操作系统:推荐使用 CentOS 或 Ubuntu。

  • Java 环境:安装 JDK 1.8 或更高版本

    java 复制代码
    sudo apt update
    sudo apt install openjdk-8-jdk

    Scala 环境(可选,视需求而定):

java 复制代码
sudo apt install scala

2 安装 Hadoop

  • 下载并解压 Hadoop

    java 复制代码
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
    tar -xzvf hadoop-3.3.4.tar.gz -C /opt/
    mv /opt/hadoop-3.3.4 /opt/hadoop

    配置 Hadoop

  • hadoop-env.sh:设置 Java 环境变量

java 复制代码
vim /opt/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

core-site.xml:配置 HDFS
*

java 复制代码
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
</configuration>

hdfs-site.xml:配置 HDFS 的存储位置
*

java 复制代码
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

yarn-site.xml:配置 YARN
*

java 复制代码
<configuration>
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
</configuration>

slaves:添加从节点主机名
*

java 复制代码
vim /opt/hadoop/etc/hadoop/slaves
slave1
slave2

启动 Hadoop

java 复制代码
/opt/hadoop/bin/hdfs namenode -format
/opt/hadoop/sbin/start-dfs.sh
/opt/hadoop/sbin/start-yarn.sh

3. 安装 Spark

  • 下载并解压 Spark

java 复制代码
wget https://downloads.apache.org/spark/spark-3.2.4/spark-3.2.4-bin-hadoop3.2.tgz
tar -xzvf spark-3.2.4-bin-hadoop3.2.tgz -C /opt/
mv /opt/spark-3.2.4-bin-hadoop3.2 /opt/spark

配置 Spark

  • spark-env.sh:设置环境变量

    java 复制代码
    cp /opt/spark/conf/spark-env.sh.template /opt/spark/conf/spark-env.sh
    vim /opt/spark/conf/spark-env.sh
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
    export YARN_CONF_DIR=/opt/hadoop/etc/hadoop

    spark-defaults.conf:启用事件日志

java 复制代码
cp /opt/spark/conf/spark-defaults.conf.template /opt/spark/conf/spark-defaults.conf
vim /opt/spark/conf/spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:9000/spark/eventLogs
spark.yarn.historyServer.address master:18080

slaves:添加从节点主机名
*

java 复制代码
cp /opt/spark/conf/slaves.template /opt/spark/conf/slaves
vim /opt/spark/conf/slaves
slave1
slave2

分发配置文件: 将主节点的 Spark 配置文件分发到所有从节点。
*

java 复制代码
scp -r /opt/spark/conf/spark-env.sh root@slave1:/opt/spark/conf/
scp -r /opt/spark/conf/spark-env.sh root@slave2:/opt/spark/conf/

启动 Spark

  • 在主节点启动 Spark Shell。

java 复制代码
spark-shell --master yarn --deploy-mode client

测试集群

  • 提交一个示例作业

java 复制代码
spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py 1000

验证集群

  • 访问 YARN 的 Web UI 页面(http://master:8088),查看应用的运行情况。
相关推荐
阿里云大数据AI技术9 分钟前
[VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
大数据·人工智能·flink
青云交1 小时前
电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
大数据·数据安全·数字化转型·kingbasees·企业级应用·融合数据库·多模存储
shinelord明1 小时前
【计算机网络架构】网状型架构简介
大数据·分布式·计算机网络·架构·计算机科学与技术
lucky_syq2 小时前
Flink窗口:解锁流计算的秘密武器
大数据·flink
明天好,会的2 小时前
从Spark/Flink到WASM:流式处理框架的演进与未来展望
flink·spark·wasm
gorgor在码农4 小时前
Elasticsearch 的聚合(Aggregations)操作详解
大数据·elasticsearch·搜索引擎
BigData共享4 小时前
StarRocks 使用 JNI 读取数据湖表引发的堆内存溢出分析
大数据
物联网软硬件开发-轨物科技4 小时前
【轨物洞见】光伏逆变器数据:分布式电站价值回归的“第一块多米诺骨牌”
分布式
java叶新东老师5 小时前
四、搭建springCloudAlibaba2021.1版本分布式微服务-加入openFeign远程调用和sentinel流量控制
分布式·微服务·sentinel
Aurora_NeAr5 小时前
大数据之路:阿里巴巴大数据实践——大数据领域建模综述
大数据·后端