Искра на понимании понятия пряжи

Я пытаюсь понять, как работает spark на кластере / клиенте YARN. У меня есть следующий вопрос в моей голове.

  1. Нужно ли, чтобы искра была установлена ​​на всех узлах в кластере пряжи? Я думаю, что так должно быть, потому что рабочие узлы в кластере выполняют задачу и должны иметь возможность декодировать код (API-интерфейсы spark) в приложении spark, отправляемом в кластер драйвером?

  2. В документации сказано: "Убедитесь, что HADOOP_CONF_DIR или же YARN_CONF_DIR указывает на каталог, который содержит (клиентские) файлы конфигурации для кластера Hadoop ". Почему клиентский узел должен устанавливать Hadoop при отправке задания в кластер?

3 ответа

Решение

На YARN мы выполняем искровые работы (мы используем HDP 2.2).

У нас не установлена ​​искра на кластере. Мы только добавили сборочный файл Spark в HDFS.

Например, чтобы запустить пример Pi:

./bin/spark-submit \
  --verbose \
  --class org.apache.spark.examples.SparkPi \
  --master yarn-cluster \
  --conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \
  --num-executors 2 \
  --driver-memory 512m \
  --executor-memory 512m \
  --executor-cores 4 \
  hdfs://master:8020/spark/spark-examples-1.3.1-hadoop2.6.0.jar 100

--conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar - Этот конфиг говорит, что пряжа должна была взять искру в сборе. Если вы не используете его, он загрузит банку, с которой вы запустили spark-submit,

О вашем втором вопросе: клиентский узел не нуждается в установленном Hadoop. Для этого нужны только файлы конфигурации. Вы можете скопировать каталог из вашего кластера на ваш клиент.

Добавление к другим ответам.

  1. Нужно ли, чтобы искра была установлена ​​на всех узлах в кластере пряжи?

Нет, если задание зажигания выполняется в YARN(либо client или же cluster Режим). Установка Spark необходима во многих узлах только для автономного режима.

Это визуализация режимов развертывания приложений Spark.

Искровой автономный кластер Искровой автономный режим

В cluster драйвер режима будет находиться в одном из узлов Spark Worker, тогда как в client Режим будет в машине, которая запустила задание.


Режим кластера YARNРежим кластера YARN

YARN клиентский режимYARN клиентский режим

Эта таблица предлагает краткий список различий между этими режимами:

различия между режимами Автономный, Кластер YARN и Клиент YARN

источник фото

  1. В документации сказано: "Убедитесь, что HADOOP_CONF_DIR или YARN_CONF_DIR указывает на каталог, который содержит (клиентские) файлы конфигурации для кластера Hadoop". Почему клиентский узел должен устанавливать hadoop при отправке задания в кластер?

Установка Hadoop не обязательна, но конфигурации (не все) есть! Это могут быть две основные причины.

  • Конфигурация, содержащаяся в HADOOP_CONF_DIR каталог будет распространяться на кластер YARN, так что все контейнеры, используемые приложением, используют одинаковую конфигурацию.
  • В режиме YARN адрес ResourceManager выбирается из конфигурации Hadoop (yarn-default.xml). Таким образом --master параметр yarn,


Обновление: (2017-01-04)

Spark 2.0+ больше не требует толстой сборочной фляги для производственного развертывания. источник

Позвольте мне попытаться сократить клей и сократить терпение.

6 компонентов: 1. клиент, 2. драйвер, 3. исполнители, 4. мастер приложения, 5. рабочие и 6. менеджер ресурсов; 2 режима развертывания; и 2 управления ресурсами (кластером).

Вот соотношение:

Клиент

Ничего особенного, это приложение, отправляющее искру.

Рабочий, исполнители

Ничего особенного, один рабочий держит одного или нескольких исполнителей.

Мастер и менеджер ресурсов (кластера)

(независимо от режима клиента или кластера)

  • в yarn менеджер ресурсов и мастер находятся в двух разных узлах;
  • в автономном режиме диспетчер ресурсов == мастер, тот же процесс в том же узле.

Водитель

  • в клиентском режиме сидит с клиентом
  • в пряжи - кластерный режим, сидит с мастером (в этом случае клиентский процесс завершается после отправки приложения)
  • в автономном режиме - кластерный режим, сидит с одним рабочим

Вуаля!

1 - Искра, если следует за подчиненной / ведущей архитектурой. Итак, на вашем кластере вы должны установить Spark Master и N Spark Slave. Вы можете запустить искру в автономном режиме. Но использование архитектуры Yarn даст вам некоторые преимущества. Здесь есть очень хорошее объяснение: http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/

2- Это необходимо, если вы хотите использовать, например, Yarn или HDFS, но, как я уже говорил, вы можете запустить его в автономном режиме.

Другие вопросы по тегам