Оглавление
1.2 Независимый кластер Spark (автономный режим развертывания)
1.3 Развертывание на основе Hadoop YARN
1.4 Развертывание на основе Kubernetes (т. е. k8s)
Ссылка на официальную документацию:https://spark.apache.org/docs/latest/cluster-overview.html#cluster-mode-overview
Распространенные шаблоны развертывания:
● локальный режим ● Независимый кластер Spark (автономный) Deploy Mode) ● На основе Hadoop YARN развертывать ● На основе Апача Mesosразвертывание (включена последняя версия Spark) ● на основеKubernetes(Прямо сейчасk8s)развертывать
Основное различие между различными режимами развертывания заключается в способе управления ресурсами между одним или несколькими узлами вычислительного кластера. Каждый режим развертывания Spark можно использовать в интерактивных (оболочках) и неинтерактивных (пакетных) приложениях. Ниже приводится краткое описание различныхразвертыватьрежим,Отправка задачи Заказ;Ссылки:Submitting Applications - Spark 3.3.0 Documentation
Этот режим запускает процесс Spark на локальном компьютере и ограничен ресурсами локального компьютера. Обычно он используется для тестирования.
Как видите, локальный, заполненный мастером, предназначен для выбора локального режиме и может быть записано как local[n] выбрать использование n ядер процессора;
Независимый кластер Spark — это встроенный («независимый») планировщик Spark, который не требует внешнего планировщика.
Заполните адрес и порт, где запускается основной процесс на мастере.
Наиболее часто используемый режим развертывания — это использование инфраструктуры управления ресурсами YARN, предоставляемой Hadoop.,При использовании YARN в качестве планировщика,Предусмотрено два режима развертывания кластера.,Один из них — кластерный режим, Один из них — клиентский режим.
можно увидеть,Эти режимы развертывания имеют фиксированные форматы отправки заданий.,Можно сказать, что они похожи,Ниже будут представлены методы и параметры для отправки задач.
неинтерактивное приложение,проходитьspark-submitЗаказ Отправить задачу,Официальное объяснение показано по следующей ссылке:
Submitting Applications - Spark 3.2.1 Documentation
Сценарий искровой отправки находится в папке bin под инсталляцией искры.,В Заказе используются многоразовые модули в виде скриптов.,
Программная отправка задач в Spark,и может поддержатьРазличные менеджеры кластеров и режимы развертывания, поддерживаемые Spark.
Общий искровой заказ Заказ:
${SPARK_HOME}/bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
Параметры строки заказа
Эти параметры представлены один за другим ниже:
class | Точка входа приложения (например, org.apache.spark.examples.SparkPi). |
---|---|
master | Параметры, используемые для установки URL-адреса основного узла. Подробную информацию см. в официальной документации. Отправка приложений — документация Spark 3.3.0. |
deploy-mode | Решите, будет ли развертываться драйвер на рабочем узле (кластере) или как внешний клиент (клиент) Локальное развертывание (по умолчанию: клиент) |
conf | Любое свойство конфигурации Spark в формате «ключ-значение» для значений, содержащих пробелы, замените «key»; = value», заключенный в кавычки, несколько конфигураций следует передавать как отдельные параметры. (например, --conf <key> = <value> --conf <key2> = <value2>) |
<application-jar> | Путь к связанному jar-файлу, включая ваше приложение и все зависимости. URL-адрес должен быть глобально видимым в кластере. Например, hdfs:// существует на всех узлах. путь или файл:// path。 [For Python applications, simply pass a .py file in the place of <application-jar> instead of a JAR, and add Python .zip, .egg or .py files to the search path with --py-files] |
py-files | Список файлов .py или .zip, разделенных запятыми, включая приложения Python, которые будут доставлены каждому исполнителю для использования. |
[application-arguments] | Параметры, передаваемые в основной метод основного класса (если есть) |
name | Имя приложения; Примечание;,При создании SparkSession,Если указать имя приложения программно,Тогда параметры из строки Заказ будут переопределены. |
files | Заказ дает список файлов, разделенных запятыми.,Эти файлы будут доставлены каждому исполнителю для использования. |
properties-file | файл конфигурации. Он должен иметь те же настройки свойств, что и файл conf/spark-defaults.conf, и быть читаемым. |
queue | Укажите имя очереди ресурсов, t (только для YARN). |
version | Версия Spark для печати. |
verbose | Распечатайте дополнительную информацию об отладке при запуске приложения. |
help | Показать справочное сообщение и выйти. |
Следующие четыре параметра, возможно, потребуется отладить в соответствии с реальной ситуацией при выполнении задач для улучшения использования ресурсов. На них можно сосредоточиться:
driver-core | Указывает количество ядер для драйвера. Значение по умолчанию — 1. (только пряжа) |
---|---|
driver-memory | Параметры, указывающие, сколько памяти приложение выделяет для драйвера, например 1000M, 2G; Значение по умолчанию — 1024M. |
num-executors | Количество исполнителей стартовало. По умолчанию — 2. (только для пряжи) |
exectuor-memory | Указывает, сколько памяти каждый исполнитель выделяет приложению. Значение по умолчанию — 1G. |
executor-core | Количество ядер на исполнителя. (только для Spark и YARN), значение по умолчанию — 1 в режиме пряжи. |
Существует также официальное объяснение значения этих профессиональных терминов: Cluster Mode Overview - Spark 3.3.0 Documentation Я взял несколько отрывков и написал их здесь. Для более подробного объяснения, пожалуйста, обратитесь к справочной документации:
Driver program | Процесс, который запускает функцию main() приложения и создает SparkContext. |
---|---|
Cluster manager | Внешние сервисы для получения ресурсов кластера (например, автономные менеджеры, Mesos, YARN, Kubernetes) |
Worker node | Любой узел в кластере, на котором может выполняться код приложения. |
Executor | Это процесс JVM в рабочем узле (Worker) в кластере, отвечающий за выполнение определенных задач (Task) в заданиях Spark, причем задачи независимы друг от друга. При запуске приложения Spark узел Executor запускается одновременно и всегда существует на протяжении всего жизненного цикла приложения Spark. Если узел Executor выйдет из строя или выйдет из строя, приложение Spark сможет продолжить выполнение, а задачи на вышедшем из строя узле будут запланированы для продолжения работы на других узлах Executor. |
#############################################################################
Для получения дополнительных параметров вы можете использовать --help для просмотра: