Искры концепции концепции пряжи
Я пытаюсь понять, как искра работает на кластере/клиенте 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]()
источник фото
- В документации "Убедитесь, что 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, например, но, как я уже сказал, вы можете запустить ее в автономном режиме.