【spark床头书系列】如何在YARN上启动Spark官网权威详解说明

【spark床头书系列】如何在YARN上启动Spark官网权威详解说明点击这里看全文

文章目录

  • 添加其他JAR文件
  • 准备工作
  • 配置
  • 调试应用程序
  • Spark属性
  • 重要说明
  • Kerberos
    • YARN特定的Kerberos配置
    • Kerberos故障排除
  • 配置外部Shuffle服务
  • 使用Apache Oozie启动应用程序
  • 使用Spark历史服务器替代Spark Web UI
  • 官网链接

确保 HADOOP_CONF_DIR 或者 YARN_CONF_DIR 指向包含(客户端侧)Hadoop集群配置文件的目录。
这些配置文件用于写入HDFS和连接到YARN ResourceManager。该目录中的配置将被分发到YARN集群,以便应用程序使用相同的配置。如果配置引用了YARN未管理的Java系统属性或环境变量,则也应在Spark应用程序的配置中设置(驱动程序、执行器和以客户端模式运行时的应用程序主进程)。

在YARN上可以使用两种部署模式来启动Spark应用程序。在 cluster 模式下,Spark driver 在由YARN在集群上管理的应用程序主进程中运行,客户端在启动应用程序后可以退出。在 client 模式下,driver 在客户端进程中运行,应用程序主进程仅用于从YARN请求资源。

与Spark支持的其他集群管理器不同,其中主节点地址在 --master 参数中指定,在YARN模式下ResourceManager的地址是从Hadoop配置中获取的。
因此,--master 参数是 yarn

要以 cluster 模式启动Spark应用程序:

$ ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster [options] <app jar> [app options]

例如:

$export HADOOP_CONF_DIR=/etc/hadoop/conf;
./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 4g \
    --executor-memory 2g \
    --executor-cores 1 \
    --queue thequeue \
    examples/jars/spark-examples*.jar \
    10

上述示例启动了一个YARN客户端程序,该程序启动了默认的Application Master。然后,SparkPi将作为Application Master的子线程运行。客户端会定期轮询Application Master以获取状态更新,并在控制台中显示它们。一旦应用程序运行完成,客户端将退出。有关如何查看驱动程序和执行器日志,请参考下面的“调试应用程序”部分。

要以 client 模式启动Spark应用程序,可以执行相同的操作,只需将 cluster 替换为 client。以下是在 client 模式下运行 spark-shell 的示例:

$ ./bin/spark-shell --master yarn --deploy-mode client

添加其他JAR文件

cluster 模式下,driver 在与客户端不同的机器上运行,因此 SparkContext.addJar 默认情况下无法使用客户端本地的文件。要使客户端上的文件对 SparkContext.addJar 可用,可以在启动命令中使用 --jars 选项包含它们。

$ ./bin/spark-submit --class my.main.Class \
    --master yarn \
    --deploy-mode cluster \
    --jars my-other-jar.jar,my-other-other-jar.jar \
    my-main-jar.jar \
    app_arg1 app_arg2

准备工作

在YARN上运行Spark需要一个构建了YARN支持的二进制分发版Spark。
二进制分发版可以从该项目网站的下载页面下载。
要自己构建Spark,请参考构建Spark。

为了使YARN端能够访问Spark运行时jar文件,可以指定 spark.yarn.archive 或者 spark.yarn.jars。详细信息请参考Spark属性。如果未指定 spark.yarn.archive

你可能感兴趣的:(spark,spark,大数据,分布式)