Spark Standalone Cluster deployMode = "cluster": Где находится мой драйвер? - PullRequest
2 голосов
/ 24 марта 2019

Я исследовал это в течение значительного периода времени и нахожу ответы, которые, по-видимому, немного отличаются от моих.

ОБНОВЛЕНИЕ: Документы Spark говорят, что драйвер работает на кластере.deployMode: кластер.Кажется, что это не так, если вы не используете spark-submit

Мой кластер Spark 2.3.3 работает нормально.Я вижу графический интерфейс на «http://master -адрес: 8080 », есть 2 незанятых рабочих, как настроено.

У меня есть приложение Scala, которое создает контекст и запускает задание. Я не использую spark-submit , я запускаю задание программно, и именно здесь многие ответы расходятся с моим вопросом.

В "my-app" я создаю новый SparkConf сследующий код (слегка сокращенно):

  conf.setAppName(“my-job")
  conf.setMaster(“spark://master-address:7077”)
  conf.set(“deployMode”, “cluster”)
  // other settings like driver and executor memory requests
  // the driver and executor memory requests are for all mem on the slaves, more than 
  // mem available on the launching machine with “my-app"
  val jars = listJars(“/path/to/lib")
  conf.setJars(jars)
  …

Когда я запускаю задание, я вижу двух исполнителей, работающих на 2 узлах / рабочих / подчиненных. В журналах отображается их IP-адрес и они называются исполнителями 0 и 1.

С кластером пряжи я ожидал бы, что «Драйвер» будет работать на / в Мастере пряжи, но я использую Spark Standalone Master, где находится часть «Драйвер» задания?Если он работает на случайном работнике или где-то еще, есть ли способ найти его по логам

Где работает мой Spark Driver?Работает ли deployMode = cluster , если не используется spark-submit?Свидетельство показывает кластер с одним мастером (на той же машине, что и исполнитель 0) и двумя рабочими.Он также показывает одинаковое использование памяти обоими работниками во время работы.Из журналов я знаю, что оба Рабочих работают Исполнителями.Где находится драйвер?

«Драйвер» создает и передает некоторые большие структуры данных, поэтому необходимость в ответе более критична, чем при использовании более типичных крошечных драйверов.

Где работает драйвер?Как мне найти это с учетом логов и мониторинга?Я не могу совместить то, что вижу, с документами, они противоречат друг другу.

1 Ответ

1 голос
/ 24 марта 2019

Ответ по официальной документации :

Однако в режиме кластера драйвер запускается одним из рабочих процессов внутри кластера, и клиентский процесс завершается, как только он выполняет свою обязанность по отправке приложения, не дожидаясь его завершения.

Другими словами, драйвер использует произвольный рабочий узел, поэтому он может располагаться рядом с таковым на исполнителях в таком небольшом кластере. И чтобы предвидеть последующий вопрос - это поведение не настраивается - вам просто нужно убедиться, что кластер способен запускать как требуемые исполнители, так и драйвер с запрошенной памятью и ядрами.

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