一、系统准备

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

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

  3. 网络配置:确保集群中的所有节点能够互相通信,主机名和 IP 地址需正确配置。

二、安装 Hadoop

  1. 下载 Hadoop:从 Apache Hadoop 官方网站下载适合的版本。

  2. 解压安装

    bash

    复制

    tar -zxvf hadoop-x.y.z.tar.gz -C /opt/
    mv /opt/hadoop-x.y.z /opt/hadoop
  3. 配置环境变量: 在 /etc/profile 文件中添加以下内容:

    bash

    复制

    export HADOOP_HOME=/opt/hadoop
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    然后执行 source /etc/profile 使变量生效。

  4. 配置 Hadoop

    • 编辑 core-site.xmlhdfs-site.xml 文件,配置 HDFS。

    • 编辑 yarn-site.xml 文件,配置 YARN。

三、安装 Spark

  1. 下载 Spark:从 Apache Spark 官方网站下载预编译的 Spark 包,选择与 Hadoop 版本兼容的版本。

  2. 解压安装

    bash

    复制

    tar -zxvf spark-x.y.z-bin-hadoopx.y.tgz -C /opt/
    mv /opt/spark-x.y.z-bin-hadoopx.y /opt/spark
  3. 配置环境变量: 在 /etc/profile 文件中添加以下内容:

    bash

    复制

    export SPARK_HOME=/opt/spark
    export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

    然后执行 source /etc/profile 使变量生效。

四、配置 YARN

  1. 配置 Spark

    • 进入 Spark 的 conf 目录:

      bash

      复制

      cd /opt/spark/conf
    • 复制并编辑 spark-env.sh 文件:

      bash

      复制

      cp spark-env.sh.template spark-env.sh
      vim spark-env.sh

      添加以下内容:

      bash

      复制

      export JAVA_HOME=/path/to/java
      export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
      export YARN_CONF_DIR=/opt/hadoop/etc/hadoop
    • 复制并编辑 spark-defaults.conf 文件:

      bash

      复制

      cp spark-defaults.conf.template spark-defaults.conf
      vim spark-defaults.conf

      添加以下内容:

      bash

      复制

      spark.master yarn
      spark.submit.deployMode cluster
      spark.eventLog.enabled true
      spark.eventLog.dir hdfs://master:9820/spark/eventLogs
      spark.yarn.historyServer.address master:18080
      spark.yarn.jars hdfs://master:9820/spark/jars/*
    • 修改 log4j.properties 文件,将日志级别设置为 WARN:

      bash

      复制

      log4j.rootCategory=WARN, console
  2. 上传 Spark JAR 包到 HDFS

    bash

    复制

    hdfs dfs -mkdir -p /spark/jars
    hdfs dfs -put /opt/spark/jars/* /spark/jars/
  3. 修改 YARN 配置文件: 编辑 Hadoop 的 yarn-site.xml 文件,添加以下内容:

    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://master: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>

    然后将修改后的 yarn-site.xml 文件分发到所有节点。

五、启动集群

  1. 启动 HDFS 和 YARN

    bash

    复制

    start-dfs.sh
    start-yarn.sh
  2. 启动 Spark 的 History Server

    bash

    复制

    /opt/spark/sbin/start-history-server.sh

六、测试集群

  1. 提交 Spark 作业

    bash

    复制

    spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py 1000
  2. 查看作业运行情况: 打开浏览器访问 YARN 的 Web UI,查看作业运行状态。

七、注意事项

  • 确保所有节点的时钟同步。

  • 如果遇到权限问题,可以尝试调整 HDFS 和 Spark 目录的权限。

  • 如果集群中有防火墙,需要开放相关端口。

通过以上步骤,您就可以成功搭建一个 Spark on YARN 模式的集群。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐