【发布时间】: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)
查询工作正常,结果也很好。但我只需要在流程完成时获得反馈。我尝试了以下方法。
- RUNNING Hadoop Applications 的网页确实有一个进度条,但它基本上不会移动。即使在 spark-shell 查询的情况下,进度条也是无用的。
- 我已尝试通过 YARN 日志获取进度条,但在作业完成之前不会汇总它们。即使这样,日志中也没有进度条。
有没有办法在集群上的 jar 中启动 spark 查询并有一个进度条?
【问题讨论】:
-
SparkSubmit.scala中的最新提交说:“[SPARK-21568][CORE] ConsoleProgressBar 只能在 shell 中启用”。使用 Spark UI 监控您的工作进度。
标签: apache-spark jar progress-bar apache-spark-sql hadoop-yarn