【问题标题】:How to get the progress bar (with stages and tasks) with yarn-cluster master?如何使用 yarn-cluster master 获取进度条(带有阶段和任务)?
【发布时间】:2017-10-24 04:07:26
【问题描述】:

当使用类似这样的方式运行 Spark Shell 查询时:

spark-shell yarn --name myQuery -i ./my-query.scala

在我的查询中是简单的 Spark SQL 查询,我在其中读取 parquet 文件并运行简单查询并写出 parquet 文件。运行这些查询时,我会得到一个不错的进度条,如下所示:

[Stage7:===========>                              (14174 + 5) / 62500]

当我使用完全相同的查询创建一个 jar 并使用以下命令行运行它时:

spark-submit \
  --master yarn-cluster \
  --driver-memory 16G \
  --queue default \
  --num-executors 5 \
  --executor-cores 4 \
  --executor-memory 32G \
  --name MyQuery \
  --class com.data.MyQuery \
  target/uber-my-query-0.1-SNAPSHOT.jar 

我没有得到任何这样的进度条。命令只是重复说

17/10/20 17:52:25 INFO yarn.Client: Application report for application_1507058523816_0443 (state: RUNNING)

查询工作正常,结果也很好。但我只需要在流程完成时获得反馈。我尝试了以下方法。

  1. RUNNING Hadoop Applications 的网页确实有一个进度条,但它基本上不会移动。即使在 spark-shell 查询的情况下,进度条也是无用的。
  2. 我已尝试通过 YARN 日志获取进度条,但在作业完成之前不会汇总它们。即使这样,日志中也没有进度条。

有没有办法在集群上的 jar 中启动 spark 查询并有一个进度条?

【问题讨论】:

  • SparkSubmit.scala 中的最新提交说:“[SPARK-21568][CORE] ConsoleProgressBar 只能在 shell 中启用”。使用 Spark UI 监控您的工作进度。

标签: apache-spark jar progress-bar apache-spark-sql hadoop-yarn


【解决方案1】:

当我使用完全相同的查询创建一个 jar 并使用以下命令行 (...) 运行它时,我没有看到任何这样的进度条。

这两个看似相似的 Spark 执行之间的区别在于主 URL。

在之前使用spark-shell yarn 执行的 Spark 中,master 是 client 部署模式下的 YARN,即驱动程序在您启动 spark-shell 的机器上运行。

在后面用spark-submit --master yarn-cluster执行Spark时,master是cluster部署模式的YARN(实际上相当于--master yarn --deploy-mode cluster),即驱动运行在一个YARN节点上。 p>

话虽如此,您不会在本地机器上看到漂亮的进度条(实际上称为ConsoleProgressBar),而是在运行驱动程序的机器上。

一个简单的解决方案是将yarn-cluster 替换为yarn


ConsoleProgressBar 显示活动阶段到标准错误的进度,即stderr

进度包括阶段 id、已完成、活动和总任务的数量。

ConsoleProgressBar 在 spark.ui.showConsoleProgress Spark 属性开启且 org.apache.spark.SparkContext logger 的日志级别为 WARN 或更高时创建(即打印出的消息较少,因此 ConsoleProgressBar 有一个“空格”)。

您可以在掌握 Apache Spark 2 的 ConsoleProgressBar 中找到更多信息。

【讨论】:

  • 谢谢。我的工作是有一个可移植的 scala 代码,它作为spark-shell 脚本运行,并且还编译为spark-submit 的 jar。所以,我可以在开发时有进度条。这有点工作,但远非理想。这正是我所需要的。
猜你喜欢
  • 2018-07-16
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
  • 2014-08-24
相关资源
最近更新 更多