В Spark Java, как я могу программно определить количество * активных * ядер и задач? - PullRequest
1 голос
/ 17 апреля 2019

Веб-интерфейс Spark отображает отличную информацию об общем и активном количестве ядер и задач. Как я могу получить эту информацию программно в Java Spark, чтобы я мог отображать ход выполнения заданий для конечных пользователей?

Я читал об уловке "append / json /" для извлечения JSON-версий страниц веб-интерфейса из мастера, и таким образом я могу получить общее количество ядер ...

Но вся информация о активных ядрах и задачах, по-видимому, находится на страницах пользовательского интерфейса драйвера. Я попробовал трюк "/ json /" на страницах пользовательского интерфейса драйвера, и он просто перенаправляет меня обратно на страницы HTML.

1 Ответ

1 голос
/ 18 апреля 2019

Похоже, мы обнаружили два разных способа раскрытия этой информации:

1) Извлечь SparkStatusTracker из SparkContext (спасибо, Сай):

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) Обратиться в RESTAPI доступен от драйвера JVM:

https://spark.apache.org/docs/latest/monitoring.html#rest-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...