Spark Web UI显示有关内核和任务总数和活动数量的重要信息。如何在Java Spark中以编程方式获取此信息,以便向最终用户显示作业进度?
我确实读过“ append / json /”技巧,可以从母版中提取Web UI页面的JSON版本,这样我就可以得到 total 个内核……>
但是有关 active 内核和任务的所有信息似乎都在驱动程序UI页面中。我在驱动程序UI页面上尝试了“ / json /”技巧,它只是将我重定向回HTML页面。
答案 0 :(得分:1)
好像我们发现了两种不同的方式来显示此信息:
1)从SparkContext检索SparkStatusTracker(谢谢您):
JavaSparkContext javaSparkContext = ...;
JavaSparkStatusTracker javaSparkStatusTracker = javaSparkContext.statusTracker();
for (int stageId : javaSparkStatusTracker.getActiveStageIds()) {
SparkStageInfo sparkStageInfo = javaSparkStatusTracker.getStageInfo(stageId);
int numTasks = sparkStageInfo.numTasks();
int numActiveTasks = sparkStageInfo.numActiveTasks();
int numFailedTasks = sparkStageInfo.numFailedTasks();
int numCompletedTasks = sparkStageInfo.numCompletedTasks();
...
}
2)查阅可从驱动程序JVM获得的REST API:
https://spark.apache.org/docs/latest/monitoring.html#rest-api