Apache Spark — это мощный аналитический механизм с открытым исходным кодом и распределенной инфраструктурой кластерных вычислений общего назначения. Приложение Spark — это автономное вычисление, включающее процесс-драйвер и набор процессов-исполнителей. Здесь процесс драйвера запускает функцию main(), сидя на узле внутри кластера. Более того, он отвечает за три вещи: управление информацией о приложении Spark; ответ на программу или ввод пользователя; анализ, распределение и планирование работы исполнителей.

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

Кроме того, приложение Spark можно настроить с помощью различных свойств, которые можно установить непосредственно в объекте SparkConf. И то же самое передается при инициализации SparkContext,Дополнительная информация: онлайн-обучение по большим данным и Hadoop

Конфигурация Spark

Ниже перечислены свойства и их описания. Это может быть полезно для настройки и адаптации приложения spark в среде Apache Spark. Ниже мы обсудим следующие свойства с частностями и примерами:

  • Имя приложения Apache Spark
  • Количество ядер драйвера Apache Spark
  • Максимальный размер результата драйвера
  • Память водителя
  • Память исполнителей
  • Дополнительные слушатели Spark
  • Локальный каталог
  • Конфигурация Spark журнала
  • Искра Мастер
  • Развернуть режим драйвера Spark
  • Информация о приложении журнала
  • Действие по надзору за искровым драйвером

Установить имя приложения Spark

Приведенный ниже фрагмент кода помогает нам понять настройку «Имя приложения».

импортировать org.apache.spark.SparkConf;

импортировать org.apache.spark.SparkContext;

/**

* Настройка имени приложения Apache Spark

*/

открытый класс AppConfigureExample {

public static void main(String[] args) {

// настроить искру

SparkConf conf = new SparkConf().setMaster("local[2]");

conf.set("spark.app.name", "SparkApplicationName");

// запускаем искровой контекст

SparkContext sc = новый SparkContext(conf);

// печатаем конфигурацию

System.out.println(sc.getConf().toDebugString());

// остановить искровой контекст

ск.стоп();

}

}

Вывод

Кроме того, результат для приведенной выше программы выглядит следующим образом;

spark.app.id=local-1501222987079

spark.app.name=SparkИмяПриложения

spark.driver.host=192.168.1.100

spark.driver.port=44103

spark.executor.id=драйвер

spark.master=местный[2]

Количество ядер Spark Driver

Здесь мы проверим количество ядер драйвера Spark;

  • Имя свойства: spark.driver.cores
  • Значение по умолчанию: 01
  • Исключение: это свойство рассматривается только в режиме внутри кластера.

Кроме того, эта точка отображает максимальное количество ядер, которые может использовать процесс драйвера.

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

Установить ядра драйвера Spark

импортировать org.apache.spark.SparkConf;

импортировать org.apache.spark.SparkContext;

открытый класс AppConfigureExample {

public static void main(String[] args) {

// настроить искру

SparkConf conf = new SparkConf().setMaster("local[2]");

conf.set("spark.app.name", "SparkApplicationName");

conf.set("spark.driver.cores", "2");

// запускаем искровой контекст

SparkContext sc = новый SparkContext(conf);

// печатаем конфигурацию

System.out.println(sc.getConf().toDebugString());

// остановить искровой контекст

ск.стоп();

}

}

Вывод

Мы можем видеть приведенный ниже вывод для приведенного выше кода.

spark.app.id=local-1501223394277

spark.app.name=SparkИмяПриложения

spark.driver.cores=2

spark.driver.host=192.168.1.100

spark.driver.port=42100

spark.executor.id=драйвер

spark.master=местный[2]

Максимальный размер результата драйвера

Здесь мы будем использовать размер результата драйвера.

  • Имя свойства: spark.driver.maxResultSize
  • Значение по умолчанию: 1 ГБ.
  • Исключение: минимальное значение 1 МБ.

Это максимальное ограничение на общую сумму сериализованных результатов всех разделов для каждого действия Spark. Отправленные задания будут остановлены в случае превышения лимита. Установка его на «ноль» означает, что здесь нет максимального ограничения для использования. Но в случае превышения значения, установленного свойством get, в драйвере может произойти нехватка памяти. Ниже приведен пример установки максимального ограничения на использование памяти драйвером Spark:

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

импортировать org.apache.spark.SparkConf;

импортировать org.apache.spark.SparkContext;

открытый класс AppConfigureExample {

public static void main(String[] args) {

// настроить искру

SparkConf conf = new SparkConf().setMaster("local[2]");

conf.set("spark.app.name", "SparkApplicationName");

conf.set("spark.driver.maxResultSize", "200м");

// запускаем искровой контекст

SparkContext sc = новый SparkContext(conf);

// печатаем конфигурацию

System.out.println(sc.getConf().toDebugString());

// остановить искровой контекст

ск.стоп();

}

}

Вывод

Это результат, который мы получаем из данного ввода,

spark.app.id=local-1501224103438

spark.app.name=SparkИмяПриложения

spark.driver.host=192.168.1.100

spark.driver.maxResultSize=200 м

spark.driver.port=35249

spark.executor.id=драйвер

spark.master=местный[2]

Использование памяти драйвера

  • Имя свойства: spark.driver.memory
  • Значение по умолчанию: 1 г или 1 ГБ.
  • Исключение: в случае, если приложение spark запускается в клиентском режиме, свойство должно быть установлено с помощью параметра командной строки –driver-memory.

Ниже приведен максимальный предел использования памяти драйвером Spark. Отправленные задачи могут быть прерваны в случае превышения лимита. Установка его на «Ноль» означает, что нет верхнего предела использования памяти. Но в случае превышения значения, установленного свойством, в драйвере может произойти нехватка памяти. В приведенном ниже примере объясняется, как установить максимальное ограничение на использование памяти драйвером Spark:

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

импортировать org.apache.spark.SparkConf;

импортировать org.apache.spark.SparkContext;

открытый класс AppConfigureExample {

public static void main(String[] args) {

// настроить искру

SparkConf conf = new SparkConf().setMaster("local[2]");

conf.set("spark.app.name", "SparkApplicationName");

conf.set("spark.driver.memory", "600m");

// запускаем искровой контекст

SparkContext sc = новый SparkContext(conf);

// печатаем конфигурацию

System.out.println(sc.getConf().toDebugString());

// остановить искровой контекст

ск.стоп();

}

}

Вывод

Результирующий вывод будет следующим.

spark.app.id=local-1501225134344

spark.app.name=SparkИмяПриложения

spark.driver.host=192.168.1.100

spark.driver.memory=600м

spark.driver.port=43159

spark.executor.id=драйвер

spark.master=местный[2]

Память исполнителя Spark

В каждом приложении Spark существует одинаковый фиксированный размер стека и фиксированное количество ядер для исполнителя Spark. Размер стека относится к памяти исполнителя Spark, и он управляется свойством spark.executor.memory под флагом –executor-memory. Более того, каждое искровое приложение включает в себя одного исполнителя на каждом рабочем узле. Память исполнителя обычно является оценкой того, сколько памяти рабочего узла может использовать приложение.

Привлечение дополнительных слушателей

Пользователи могут использовать дополнительные прослушиватели, установив их в свойстве spark.extraListeners. Свойство spark.extraListeners — это разделенный запятыми список классов, которые развертывают SparkListener. При запуске SparkContext экземпляры этих классов будут разработаны и зарегистрированы в шине прослушивателя Spark (SLB).

Кроме того, чтобы добавить дополнительных прослушивателей в приложение Spark, пользователи могут установить это свойство во время использования команды spark-submit. Примером этого является:

./bin/spark-submit –conf spark.extraListereners ‹Список классов слушателей, разделенных запятыми›

Локальный каталог

Каталог, полезный для «временного» пространства в приложении Spark, включает выходные файлы карты и RDD, которые хранятся на диске. Более того, это должно быть на быстром локальном диске в системе пользователя. Это также может быть разделенный запятыми (CSV) список различных каталогов на нескольких дисках.

Конфигурация Spark журнала

В конфигурации Spark «Журналы» являются эффективным SparkConf в качестве INFO при запуске SparkContext.

Мастер искр

При этом главный URL-адрес должен использоваться для подключения к кластеру.

Режим развертывания драйвера Spark

Режим развертывания программы драйвера Spark в конфигурации приложения Spark, будь то клиент или кластер. Это означает запуск/запуск программы-драйвера локально («клиент») или удаленно на одном из узлов в кластере.

В этом отношении есть два последних шага, а именно; Регистрируйте информацию о приложении и контролируйте действия драйвера Spark. К ним относятся регистрация информации о приложении при настройке и контроле действий водителя.

Таким образом, вкратце можно сказать, что весь процесс начинается со Spark Driver. Здесь драйвер Spark отвечает за преобразование пользовательской программы в единицы физической производительности, известные как задачи. На высоком уровне все программы Spark имеют схожую структуру для обеспечения хорошей работы. Более того, они построили RDD из некоторых входных данных, чтобы получить новые RDD от тех, кто использует преобразования. И они выполняют действия по сбору или сохранению данных. Программа Spark полностью строит логически ориентированный ациклический граф (DAG) операций/процессов.

Итог

Надеюсь, вы получили общее представление о процессе настройки приложения Spark. Это может помочь вам легко понять дальнейший процесс с дополнительными параметрами. Узнайте больше из онлайн-обучения по работе с большими данными