У меня есть кластер с Spark 2.2 и Mesos. Мне нужно запустить на нем чистую версию XGBoost (v0.7) для Scala (не версию Scala-Spark). (Это потому, что мне нужно, чтобы модель Scala была запущена в производство на машине без Spark).
Я делаю всю подготовку данных в Spark, фреймах данных, а затем collect
в DMatrix
в драйвере. Из того, что я заметил, код работает на драйвере.
Вопрос 1 : Правильно ли, что он работает на драйвере, поскольку DMatrix является драйвером?
Пока работает XGBoost
, SparkUI не показывает никакой активности. Также нет распечатки в StdErr или StdOut, и консоль Mesos не показывает никакой активности на драйвере.
Затем в какой-то момент я получаю распечатку StdErr, например:
[12:01:24] /xgboost/src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6
[12:01:25] /xgboost/src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 82 extra nodes, 0 pruned nodes, max_depth=6
[12:01:26] /xgboost/src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 78 extra nodes, 0 pruned nodes, max_depth=6
и работа продолжает вычислять метрики и другие вещи. Похоже, что XGBoost
работает где-то, но
Вопрос 2 : Как я могу отслеживать активность драйвера во время работы XGBoost?
Вопрос 3 : Как узнать, сколько ядер он использует?
Вопрос 4 : Важна ли в этом сценарии настройка "Отправить искру" driver-cores
?