Apache spark 在Spark Java中,如何以编程方式确定*活动*内核和任务的数量?
Spark web UI显示有关核心和任务总数和活动数量的大量信息。如何在Java Spark中以编程方式获取此信息,以便向最终用户显示作业进度 我确实读过关于“append/json/”技巧的文章,该技巧可以从主机中提取web UI页面的json版本,这样我就可以得到内核的总数Apache spark 在Spark Java中,如何以编程方式确定*活动*内核和任务的数量?,apache-spark,Apache Spark,Spark web UI显示有关核心和任务总数和活动数量的大量信息。如何在Java Spark中以编程方式获取此信息,以便向最终用户显示作业进度 我确实读过关于“append/json/”技巧的文章,该技巧可以从主机中提取web UI页面的json版本,这样我就可以得到内核的总数 但是所有关于活动内核和任务的信息似乎都在驱动程序UI页面中。我在驱动程序UI页面上尝试了“/json/”技巧,它只是将我重定向回HTML页面。看起来我们发现了两种不同的方法来显示此信息: 1) 从SparkContex
但是所有关于活动内核和任务的信息似乎都在驱动程序UI页面中。我在驱动程序UI页面上尝试了“/json/”技巧,它只是将我重定向回HTML页面。看起来我们发现了两种不同的方法来显示此信息: 1) 从SparkContext检索SparkStatusTracker(谢谢): 2) 请参阅驱动程序JVM提供的REST API:
在香草spark/EMR上,它没有自动缩放功能,在应用程序的整个生命周期中,内核的数量将保持不变。你可以通过SparkStatusTracker获得激活的Spark作业、阶段和任务:啊,谢谢你,Sai,SparkStatusTracker看起来正是我需要的。我们还为驱动程序JVM找到了RESTAPI——一旦我们找到了如何修复生成的异常,这看起来是另一种方法。
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();
...
}