2015-12-29 2 views
3

я использую искровой представить пробежали искровую программу, и я использую --deploy-mode client и --master yarn-client задать вопрос parameter.My является:Каковы отношения между клиентом развертывания режима и мастером пряжей-клиентом

Q1: Есть ли это означает, использование --deploy-mode client и использование --master yarn-client такое же, оба из них означают, что программа драйвера работает на клиенте? Есть ли разница между ними?

Q2: Клиент --deploy-mode означает, что моя программа работает только на одной машине, но не на кластере, потому что я нашел следующую информацию в журнале: все мои задачи завершены на локальном хосте.

15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 5.0 in stage 0.0 (TID 5) in 726 ms on localhost (1/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 6.0 in stage 0.0 (TID 6) in 727 ms on localhost (2/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 3.0 in stage 0.0 (TID 3) in 730 ms on localhost (3/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 1.0 in stage 0.0 (TID 1) in 737 ms on localhost (4/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 4.0 in stage 0.0 (TID 4) in 739 ms on localhost (5/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 749 ms on localhost (6/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 2.0 in stage 0.0 (TID 2) in 744 ms on localhost (7/8) 
15/12/29 10:27:28 INFO scheduler.TaskSetManager: Finished task 7.0 in stage 0.0 (TID 7) in 741 ms on localhost (8/8) 

ответ

0

Вы правильно, что yarn-client и deploy-mode client (с мастер установлен yarn я полагаю) и запустить драйвер на клиенте. Между ними нет никакой разницы.

Что касается вашего второго вопроса, deploy-mode client действует только как сигнал для запуска драйвера на клиенте. Задачи будут распределены на основе ваших других настроек. Итак, вам нужно либо установить --master yarn, либо установить среду для пряжи export SPARK_YARN_MODE=true. В противном случае он по умолчанию будет localhost

+0

, если я использую последующие представить мою программу: – zjw

+0

Большое спасибо @ Джастин Pihony, и я использую следуйте команде, чтобы отправить мою программу: spark-submit --class ... --deploy-mode client ..... для отправки моей программы, я не задаю --master, а результат как указано выше, задача завершена на локальном хосте. Означает ли это, что все мои задачи завершены на одной машине? – zjw

+0

Я обновил свой ответ на основе вашей искры-submit. –

0

Режим развертывания различает, где выполняется процесс драйвера.

Существует два режима развертывания, которые можно использовать для запуска приложений Spark на YARN.

В режиме пряжи-кластера драйвер Spark запускается внутри основного процесса приложения, который управляется YARN в кластере, и клиент может уйти после запуска приложения.

В режиме пряжи клиент, водитель работает в клиентском процессе, а также мастер-приложение используется только для запроса ресурсов из ПРЯЖИ

EDIT:

Посмотрите: http://spark.apache.org/docs/latest/running-on-yarn.html

enter image description here

Посмотрите на эту cloudera статья для лучшего понимания двух разных режимов пряжи: YARN Cluster и YARN Client.

Возвращаясь к вашим запросам:

  1. Ваше предположение верно.

  2. Он должен работать на кластере. Является ли ваш набор данных достаточно большим для запуска нескольких исполнителей разных узлов в вашем кластере?

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

+0

Можете ли вы помочь мне с моим вопросом в деталях: Q1 и Q2? – zjw

+0

Обновлен ответ. –

+0

спасибо. Команда spark-submit, которую я использовал: spark-submit --class ... --deploy-mode client ...., я не использую --master options, я действительно хочу знать, делает ли моя работа выполняется в нескольких исполнителях. и журнал выше:> 15/12/29 10:27:28 INFO scheduler.TaskSetManager: Завершено задание 5.0 в стадии 0.0 (TID 5) в 726 мс на localhost .why вся задача запускается на localhost? – zjw

0

Лучшим источником информации по этому виду является страница Submitting Applications на сайте Spark.

Управление режимом развертывания, в котором находится драйвер Spark, либо на клиенте, который запускает искру-подачу (или искровую оболочку, и т. Д.), Либо на одном из рабочих машин. Он не контролирует, где выполняется фактическая задача, только где сидит водитель. Кстати, режим «клиент» - это по умолчанию.

Для «разворачивать-режим», документация развертывания Спарк говорит

стратегия

Обычным развертывания подать заявление с машины на шлюз, который физически совмещен с рабочим машин (например, Master узел в автономном кластере EC2). В этой настройке подходит клиентский режим. В клиентском режиме драйвер запускается непосредственно в процессе искра-отправки, который действует как клиент для кластера. Ввод и вывод приложения - , подключенный к консоли.

[пропущено]

В качестве альтернативы, если ваша заявка будет подана от машины далеко от рабочих машин (например, локально на вашем ноутбуке), обычно использовать режим кластера, чтобы свести к минимуму задержки в сети между водителями и исполнителей.

Параметр --master yarn-client имеет такой же эффект, но с некоторыми особенностями ПРЯЖИ (кроме говоря Спарк работать на пряжу кластере), в основном вокруг параметров конфигурации, как spark.local.dir против пряжи эквивалентов.

Если вы используете пряжу, вы можете пропустить установки параметра --driver client и использовать --master yarn-client или --master yarn-cluster

Смежные вопросы