Искры концепции концепции пряжи

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

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

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

Ответ 1

Мы запускаем искровые задания на 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.

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

Ответ 2

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

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

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

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

Спарковый автономный кластер Spark standalone mode

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


Режим кластеров YARN YARN cluster mode

Режим клиента YARN YARN client mode

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

differences among Standalone, YARN Cluster and YARN Client modes

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

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

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

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


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

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

Ответ 3

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

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