如何搭建spark yarn模式的集合集群

一、环境准备

在搭建 Spark on YARN 集群之前,需要确保以下环境已经准备就绪:

  1. 操作系统:推荐使用 CentOS、Ubuntu 等 Linux 发行版。

  2. Java 环境:确保安装了 JDK 1.8 或更高版本。

  3. Hadoop 集群:已经搭建并运行的 Hadoop 集群,包括 HDFS 和 YARN。

二、安装 Spark

  1. 下载 Spark

    从 Apache Spark 官方网站下载适合您 Hadoop 版本的 Spark 安装包。例如,如果您使用的是 Hadoop 3.2,可以下载 spark-3.1.2-bin-hadoop3.2.tgz。

  2. 解压并安装

    将下载的 Spark 安装包解压到指定目录,并创建符号链接以便管理。

    复制代码
    cd /opt/modules/
    tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
    cd /opt/installs
    mv spark-3.1.2-bin-hadoop3.2 spark-yarn
    ln -s /opt/installs/spark-yarn /opt/installs/spark

三、配置 Spark

  1. 修改 spark-env.sh 配置文件。

    在 Spark 的 conf 目录中,将 spark-env.sh.template 文件重命名为 spark-env.sh,并编辑该文件。

    复制代码
    cd /opt/installs/spark/conf
    mv spark-env.sh.template spark-env.sh
    vim spark-env.sh

    在文件中添加以下内容:

    复制代码
    export JAVA_HOME=/opt/installs/jdk
    export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
    export YARN_CONF_DIR=/opt/installs/hadoop/etc/hadoop
    export SPARK_DAEMON_MEMORY=1g
    export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"
  2. 修改 spark-defaults.conf 文件。

    将 spark-defaults.conf.template 文件重命名为 spark-defaults.conf,并编辑该文件:

    复制代码
    mv spark-defaults.conf.template spark-defaults.conf
    vim spark-defaults.conf

    添加以下内容:

    复制代码
    spark.eventLog.enabled           true
    spark.eventLog.dir               hdfs://bigdata01:9820/spark/eventLogs
    spark.eventLog.compress          true
    spark.yarn.historyServer.address bigdata01:18080
    spark.yarn.jars                  hdfs://bigdata01:9820/spark/jars/*
  3. 修改 YARN 配置文件

    编辑 Hadoop 的 yarn-site.xml 文件,确保以下配置项正确:

    复制代码
    <property>
      <name>yarn.log-aggregation-enable</name>
      <value>true</value>
    </property>
    <property>
      <name>yarn.log-aggregation.retain-seconds</name>
      <value>604800</value>
    </property>
    <property>
      <name>yarn.log.server.url</name>
      <value>http://bigdata01:19888/jobhistory/logs</value>
    </property>
    <property>
      <name>yarn.nodemanager.pmem-check-enabled</name>
      <value>false</value>
    </property>
    <property>
      <name>yarn.nodemanager.vmem-check-enabled</name>
      <value>false</value>
    </property>
  4. 分发配置文件

    使用工具(如 xsync.sh)将配置文件同步到所有集群节点:

    复制代码
    xsync.sh /opt/installs/spark
    xsync.sh /opt/installs/hadoop/etc/hadoop/yarn-site.xml

四、启动集群

  1. 启动 Hadoop 集群

    确保 HDFS 和 YARN 服务已经启动:

    复制代码
    start-dfs.sh
    start-yarn.sh
  2. 启动 Spark History Server

    启动 Spark 的历史服务器:

    复制代码
    /opt/installs/spark/sbin/start-history-server.sh

五、测试集群

  1. 提交测试作业

    使用 spark-submit 提交一个简单的 Spark 作业:

    复制代码
    spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py 1000
  2. 查看作业运行情况

    在 YARN 的 Web UI 页面(通常是 http://master:8088)中查看作业的运行情况

相关推荐
灯澜忆梦3 小时前
【RabbitMQ #10】 | MQ可靠性
分布式·rabbitmq
Qyr995 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能
蓝色的风-20265 小时前
国产算力双雄对决:曙光8000十万卡集群 vs 华为昇腾950超节点深度解析
大数据·人工智能·自然语言处理
泛联新安6 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP7 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
逐流人7 小时前
Ceph分布式存储集群配置与池管理:从配置优先级到PG、复本池与纠删码池
运维·分布式·ceph·云原生·云计算·rados
SelectDB技术团队8 小时前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天8 小时前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
幂律智能9 小时前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan9 小时前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据