spark-配置yarn模式

91 阅读1分钟

环境准备

  1. 确保已正确安装并配置好 Hadoop 和 YARN。
  2. 确保已安装 Spark。

配置文件修改

  1. 修改 spark-env.sh 文件

    • 复制模板文件:cp spark-env.sh.template spark-env.sh

    • 添加以下内容:

      bash

      复制

      export JAVA_HOME=/path/to/java
      export HADOOP_CONF_DIR=/path/to/hadoop/etc/hadoop
      export YARN_CONF_DIR=/path/to/hadoop/etc/hadoop
      

      其中 /path/to/java/path/to/hadoop 替换为实际路径。

  2. 修改 spark-defaults.conf 文件

    • 复制模板文件:cp spark-defaults.conf.template spark-defaults.conf

    • 添加以下配置:

      properties

      复制

      spark.master                     yarn
      spark.eventLog.enabled           true
      spark.eventLog.dir               hdfs://namenode:port/spark-logs
      spark.history.fs.logDirectory    hdfs://namenode:port/spark-logs
      spark.yarn.historyServer.address http://namenode:18080
      spark.yarn.jars                  hdfs://namenode:port/spark-jars/*
      

      其中 namenodeport 替换为实际的 HDFS NameNode 地址和端口。

  3. 修改 yarn-site.xml 文件

    • 在 Hadoop 的 yarn-site.xml 文件中,添加以下配置:

      xml

      复制

      <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
      </property>
      <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
      </property>
      

      这些配置用于禁用 YARN 对容器的内存限制。

配置文件分发

  • 将修改后的配置文件分发到集群中的所有节点。

启动相关服务

  1. 启动 YARN 服务:start-yarn.sh
  2. 启动 Spark History Server:$SPARK_HOME/sbin/start-history-server.sh
  3. 启动 Hadoop 的 JobHistory Server:mapred --daemon start historyserver

提交 Spark 作业

  • 使用以下命令提交 Spark 作业:

    bash

    复制

    spark-submit --master yarn --class your.ClassName your-jar-file.jar
    

    其中 your.ClassNameyour-jar-file.jar 替换为实际的类名和 JAR 文件。

验证

  • 访问 YARN 的 UI 界面(通常是 http://namenode:8088),查看 Spark 应用程序是否正常运行