Руководство по Создание определения задания Apache Spark в Synapse Studio

В этом учебнике показано, как использовать Synapse Studio для создания определений заданий Apache Spark и их отправки в бессерверный пул Apache Spark.

В рамках этого руководства рассматриваются следующие задачи:

  • Создание определения задания Apache Spark для PySpark (Python)
  • Создание определения задания Apache Spark для Spark (Scala)
  • Создание определения задания Apache Spark для .NET Spark (C# или F#)
  • Создание определения задания путем импорта JSON-файла
  • Экспорт файла определения задания Apache Spark в локальную среду
  • Отправка определения задания Apache Spark в виде пакетного задания
  • Добавление определения задания Apache Spark в конвейер

Предварительные требования

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

  • Рабочая область Azure Synapse Analytics. См. руководство по созданию рабочей области Azure Synapse Analytics.
  • Бессерверный пул Apache Spark.
  • Учетная запись хранения ADLS 2-го поколения. Вам потребуется роль Участник для данных BLOB-объектов хранилища для файловой системы ADLS 2-го поколения, с которой вы хотите работать. Если у вас нет этой роли, добавьте разрешение вручную.
  • Если вы не хотите использовать хранилище рабочей области по умолчанию, свяжите необходимую учетную запись хранения ADLS 2-го поколения с Synapse Studio.

Создание определения задания Apache Spark для PySpark (Python)

В этом разделе рассказывается о том, как создать определение задания Apache Spark для PySpark (Python).

  1. Откройте Synapse Studio.

  2. Вы можете перейти на страницу примеров файлов для создания определений заданий Apache Spark и скачать примеры файлов для python.zip, а затем распаковать сжатый пакет и извлечь файлы wordcount.py и shakespeare.txt.

    примеры файлов

  3. Последовательно выберитеДанные ->Связанные ->Azure Data Lake Storage 2-го поколения и отправьте файлы wordcount.py и shakespeare.txt в файловую систему ADLS 2-го поколения.

    отправить файл Python

  4. Выберите центр Разработка, щелкните значок "+" и выберите пункт Spark job definition (Определение задания Spark), чтобы создать определение задания Spark.

    Создание нового определения для Python

  5. В главном окне определения задания Apache Spark из раскрывающегося списка языков выберите PySpark (Python) .

    выбор python

  6. Введите сведения об определении задания Apache Spark.

    Свойство Описание
    Имя определения задания Введите имя определения задания Apache Spark. Это имя можно изменить в любое время до публикации.
    Образец. job definition sample
    Основной файл определения Основной файл, используемый для задания. Выберите PY-файл в хранилище. Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Образец. abfss://…/path/to/wordcount.py
    Аргументы командной строки Дополнительные аргументы для задания.
    Пример: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Примечание. Два аргумента для образца определения задания разделены пробелами.
    Файлы ссылок Дополнительные файлы, используемые для ссылки в основном файле определения. Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Пул Spark Задание будет отправлено в выбранный пул Apache Spark.
    Версия Spark Версия Apache Spark, которая используется в пуле Apache Spark.
    Исполнители Количество исполнителей, которые будут предоставлены для задания в определенном пуле Apache Spark.
    Размер исполнителя Количество ядер и памяти, которые будут использоваться для исполнителей, предоставленных для задания в определенном пуле Apache Spark.
    Размер драйвера Количество ядер и объем памяти, которые будут использоваться для драйвера, предоставленного для задания в указанном пуле Apache Spark.
    Конфигурация Apache Spark Настройте конфигурации, добавив следующие свойства. Если вы не добавите свойство, Azure Synapse будет использовать значение по умолчанию, если применимо.

    Выбор значения для определения задания Spark для Python

  7. Выберите Опубликовать, чтобы сохранить определение задания Apache Spark.

    Публикация определения PY

Создание определения задания Apache Spark для Apache Spark (Scala)

В этом разделе рассказывается о том, как создать определение задания Apache Spark для Apache Spark (Scala).

  1. Откройте Azure Synapse Studio.

  2. Вы можете перейти на страницу примеров файлов для создания определений заданий Apache Spark и скачать примеры файлов для scala.zip, а затем распаковать сжатый пакет и извлечь файлы wordcount.jar и shakespeare.txt.

    примеры файлов scala

  3. Последовательно выберитеДанные ->Связанные ->Azure Data Lake Storage 2-го поколения и отправьте файлы wordcount.jar и shakespeare.txt в файловую систему ADLS 2-го поколения.

    Подготовка структуры Scala

  4. Выберите центр Разработка, щелкните значок "+" и выберите пункт Spark job definition (Определение задания Spark), чтобы создать определение задания Spark. (Пример изображения аналогичен примеру для шага 4 Создание определения задания Apache Spark для PySpark (Python) .)

  5. В главном окне определения задания Apache Spark из раскрывающегося списка языков выберите Spark (Scala) .

    выбор scala

  6. Введите сведения об определении задания Apache Spark. Пример сведений можно скопировать.

    Свойство Описание
    Имя определения задания Введите имя определения задания Apache Spark. Это имя можно изменить в любое время до публикации.
    Образец. scala
    Основной файл определения Основной файл, используемый для задания. Выберите JAR-файл в хранилище. Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Образец. abfss://…/path/to/wordcount.jar
    Имя главного класса Полный идентификатор или основной класс, который находится в основном файле определения.
    Образец. WordCount
    Аргументы командной строки Дополнительные аргументы для задания.
    Пример: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Примечание. Два аргумента для образца определения задания разделены пробелами.
    Файлы ссылок Дополнительные файлы, используемые для ссылки в основном файле определения. Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Пул Spark Задание будет отправлено в выбранный пул Apache Spark.
    Версия Spark Версия Apache Spark, которая используется в пуле Apache Spark.
    Исполнители Количество исполнителей, которые будут предоставлены для задания в определенном пуле Apache Spark.
    Размер исполнителя Количество ядер и памяти, которые будут использоваться для исполнителей, предоставленных для задания в определенном пуле Apache Spark.
    Размер драйвера Количество ядер и объем памяти, которые будут использоваться для драйвера, предоставленного для задания в указанном пуле Apache Spark.
    Конфигурация Apache Spark Настройте конфигурации, добавив следующие свойства. Если вы не добавите свойство, Azure Synapse будет использовать значение по умолчанию, если применимо.

    Выбор значения для определения задания Spark для Scala

  7. Выберите Опубликовать, чтобы сохранить определение задания Apache Spark.

    Публикация определения Scala

Создание определения задания Apache Spark для .NET Spark (C# или F#)

В этом разделе рассказывается о том, как создать определение задания Apache Spark для .NET Spark (C# или F#).

  1. Откройте Azure Synapse Studio.

  2. Вы можете перейти на страницу примеров файлов для создания определений заданий Apache Spark и скачать примеры файлов для dotnet.zip, а затем распаковать сжатый пакет и извлечь файлы wordcount.zip и shakespeare.txt.

    пример DotNet

  3. Последовательно выберитеДанные ->Связанные ->Azure Data Lake Storage 2-го поколения и отправьте файлы wordcount.zip и shakespeare.txt в файловую систему ADLS 2-го поколения.

    Подготовка структуры .NET

  4. Выберите центр Разработка, щелкните значок "+" и выберите пункт Spark job definition (Определение задания Spark), чтобы создать определение задания Spark. (Пример изображения аналогичен примеру для шага 4 Создание определения задания Apache Spark для PySpark (Python) .)

  5. В главном окне определения задания Apache Spark из раскрывающегося списка языков выберите .NET Spark (C#/F#) .

    выбор DotNet

  6. Введите сведения об определении задания Apache Spark. Пример сведений можно скопировать.

    Свойство Описание
    Имя определения задания Введите имя определения задания Apache Spark. Это имя можно изменить в любое время до публикации.
    Образец. dotnet
    Основной файл определения Основной файл, используемый для задания. Выберите из хранилища ZIP-файл, содержащий приложение .NET для Apache Spark (то есть основной исполняемый файл, библиотеки DLL с пользовательскими функциями и другие необходимые файлы). Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Образец. abfss://…/path/to/wordcount.zip
    Основной исполняемый файл Основной исполняемый файл — это основной ZIP-файл определения.
    Образец. WordCount
    Аргументы командной строки Дополнительные аргументы для задания.
    Пример: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Примечание. Два аргумента для образца определения задания разделены пробелами.
    Файлы ссылок Дополнительные файлы, необходимые рабочим узлам для запуска приложения .NET для Apache Spark, не включенные в основной ZIP-файл определения (то есть зависимые JAR-файлы, дополнительные библиотеки DLL с пользовательскими функциями и другие файлы конфигурации). Для отправки файла в учетную запись хранения можно выбрать Отправить файл.
    Пул Spark Задание будет отправлено в выбранный пул Apache Spark.
    Версия Spark Версия Apache Spark, которая используется в пуле Apache Spark.
    Исполнители Количество исполнителей, которые будут предоставлены для задания в определенном пуле Apache Spark.
    Размер исполнителя Количество ядер и памяти, которые будут использоваться для исполнителей, предоставленных для задания в определенном пуле Apache Spark.
    Размер драйвера Количество ядер и объем памяти, которые будут использоваться для драйвера, предоставленного для задания в указанном пуле Apache Spark.
    Конфигурация Apache Spark Настройте конфигурации, добавив следующие свойства. Если вы не добавите свойство, Azure Synapse будет использовать значение по умолчанию, если применимо.

    Выбор значения для определения задания Spark для .NET

  7. Выберите Опубликовать, чтобы сохранить определение задания Apache Spark.

    Публикация определения .NET

Примечание

Если в конфигурации Apache Spark определение задания Apache Spark не выполняет никаких специальных действий, то при выполнении задания будет использоваться конфигурация по умолчанию.

Создание определения задания Apache Spark путем импорта JSON-файла

Вы можете импортировать существующий локальный файл JSON в рабочую область Azure Synapse с помощью меню Действия (...) в обозревателе определений заданий Apache Spark, чтобы создать новое определение задания Apache Spark.

Создание определения для импорта

Определение задания Spark полностью совместимо с API Livy. Вы можете добавить параметры для других свойств Livy (документация по Livy, раздел о REST API (apache.org)) в локальный JSON-файл. Можно также указать параметры, связанные с конфигурацией Spark, в соответствующем свойстве, как показано ниже. Затем можно импортировать JSON-файл обратно, чтобы создать новое определение для пакетного задания Apache Spark. Пример JSON для импорта определения Spark:

   {
  "targetBigDataPool": {
    "referenceName": "socdemolarge",
    "type": "BigDataPoolReference"
  },
  "requiredSparkVersion": "2.3",
  "language": "scala",
  "jobProperties": {
    "name": "robinSparkDefinitiontest",
    "file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
    "className": "WordCount",
    "args": [
      "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
    ],
    "jars": [],
    "files": [],
    "conf": {
      "spark.dynamicAllocation.enabled": "false",
      "spark.dynamicAllocation.minExecutors": "2",
      "spark.dynamicAllocation.maxExecutors": "2"
    },
    "numExecutors": 2,
    "executorCores": 8,
    "executorMemory": "24g",
    "driverCores": 8,
    "driverMemory": "24g"
  }
}

Другие свойства Livy

Экспорт существующего файла определения задания Apache Spark

Можно экспортировать существующие файлы определений заданий Apache Spark в локальную среду с помощью меню Действия (...) в проводнике. При необходимости вы можете обновить такой JSON-файл, добавив в него свойства Livy, и импортировать его обратно для создания нового определения задания.

Создание определения для экспорта

Создание определения для экспорта 2

Отправка определения задания Apache Spark в виде пакетного задания

Созданное определение задания Apache Spark можно отправить в пул Apache Spark. Убедитесь, что у вас есть роль Участник для данных BLOB-объектов хранилища для файловой системы ADLS 2-го поколения, с которой вы хотите работать. Если у вас нет этой роли, добавьте разрешение вручную.

Сценарий 1. Отправка определения заданий Apache Spark

  1. Откройте окно определения задания Apache Spark, выбрав его.

    Открыть определение задания Spark для отправки

  2. Нажмите кнопку Отправить, чтобы отправить проект в выбранный пул Apache Spark. Вы можете щелкнуть вкладку Spark monitoring URL (URL-адрес мониторинга Spark), чтобы просмотреть LogQuery приложения Apache Spark.

    Нажатие кнопки

    Диалоговое окно Spark Submission (Отправка в Spark)

Сценарий 2. Просмотр хода выполнения задания Apache Spark

  1. Щелкните Монитор и выберите параметр Apache Spark applications (Приложения Apache Spark). В списке будет отправленное приложение Apache Spark.

    Просмотр приложения Spark

  2. Затем выберите приложение Apache Spark, которое отображается в окне задания SparkJobDefinition. В этом окне можно просмотреть ход выполнения задания.

    Просмотр LogQuery приложения Spark

Сценарий 3. Проверка выходного файла

  1. Последовательно выберите Данные ->Связанные ->Azure Data Lake Storage 2-го поколения (hozhaobdbj), откройте созданную ранее папку результатов, в которой можно просмотреть, созданы ли выходные данные.

    Просмотр выходного файла

Добавление определения задания Apache Spark в конвейер

В этом сценарии определение задания Apache Spark добавляется в конвейер.

  1. Откройте имеющееся определение задания Apache Spark.

  2. Щелкните значок в правом верхнем углу определения задания Apache Spark, выберите Existing Pipeline (Имеющийся конвейер) или New pipeline (Новый конвейер). Дополнительные сведения см. на странице Pipeline (Конвейер).

    Добавление в конвейер 1

    Добавление в конвейер 2

Дальнейшие действия

Далее вы можете использовать Azure Synapse Studio для создания наборов данных Power BI и управления такими данными. Дополнительные сведения см. в статье Краткое руководство. Связывание рабочей области Power BI с рабочей областью Synapse.