Отправка задания .NET для Apache Spark в DatabricksSubmit a .NET for Apache Spark job to Databricks

Есть два способа развертывания задания .NET для Apache Spark в Databricks: с помощью команды spark-submit и действия "Указание файла JAR".There are two ways to deploy your .NET for Apache Spark job to Databricks: spark-submit and Set Jar.

Развертывание с помощью spark-submitDeploy using spark-submit

Для отправки заданий .NET для Apache Spark в Databricks можно использовать команду spark-submit.You can use the spark-submit command to submit .NET for Apache Spark jobs to Databricks. spark-submit разрешает отправку только в кластер, который создается по требованию.spark-submit allows submission only to a cluster that gets created on-demand.

  1. Перейдите в рабочую область Databricks и создайте задание.Navigate to your Databricks Workspace and create a job. Выберите название задания, а затем нажмите Настройка spark-submit.Choose a title for your job, and then select Configure spark-submit. Вставьте следующие параметры в конфигурацию задания и щелкните Подтвердить.Paste the following parameters in the job configuration, then select Confirm.

    ["--files","/dbfs/<path-to>/<app assembly/file to deploy to worker>","--class","org.apache.spark.deploy.dotnet.DotnetRunner","/dbfs/<path-to>/microsoft-spark-<spark_majorversion.spark_minorversion.x>-<spark_dotnet_version>.jar","/dbfs/<path-to>/<app name>.zip","<app bin name>","app arg1","app arg2"]
    

    Примечание

    Обновите содержимое указанного выше параметра с учетом конкретных файлов и конфигурации.Update the contents of the above parameter based on your specific files and configuration. Например, укажите версию файла JAR Microsoft.Spark, который вы отправили в DBFS, и используйте соответствующее имя приложения и ZIP-файла опубликованного приложения.For instance, reference the version of the Microsoft.Spark jar file that you uploaded to DBFS, and use the appropriate name of your app and published app zip file.

  2. Перейдите к своему заданию и выберите Изменить, чтобы настроить кластер задания.Navigate to your job and select Edit to configure your job's cluster. Задайте версию Databricks Runtime в зависимости от версии Apache Spark, которую вы хотите использовать в развертывании.Set the Databricks Runtime Version based on the version of Apache Spark you wish to use in your deployment. Затем щелкните Дополнительные параметры > Скрипты инициализации и задайте значение dbfs:/spark-dotnet/db-init.sh для параметра пути к скрипту инициализации.Then select Advanced Options > Init Scripts, and set Init Script Path as dbfs:/spark-dotnet/db-init.sh. Выберите Подтвердить, чтобы подтвердить параметры кластера.Select Confirm to confirm your cluster settings.

  3. Перейдите к своему заданию и выберите Запустить сейчас, чтобы запустить задание в только что настроенном кластере Spark.Navigate to your job and select Run Now to run your job on your newly configured Spark cluster. Создание кластера для задания может занять несколько минут.It takes a few minutes for the job's cluster to be created. После этого в кластер будет отправлено задание.Once it is created, your job will be submitted. Чтобы просмотреть выходные данные, выберите Кластеры в меню слева в рабочей области Databricks, а затем щелкните Журналы драйверов.You can view the output by selecting Clusters from the left menu of your Databricks workspace, then select Driver Logs.

Развертывание с помощью действия "Указание файла JAR"Deploy using Set Jar

Кроме того, для отправки заданий .NET для Apache Spark в Databricks можно использовать действия Указание файла JAR в рабочей области Databricks.Alternatively, you can use Set Jar in your Databricks workspace to submit .NET for Apache Spark jobs to Databricks. Действие Указание файла JAR позволяет отправить задание в существующий активный кластер.Set Jar allows job submission to an existing active cluster.

Однократная настройкаOne-time setup

  1. Перейдите в кластер Databricks и в меню слева выберите Задания, а затем Указание файла JAR.Navigate to your Databricks cluster and select Jobs from the left-side menu, followed by Set JAR.

  2. Отправьте соответствующий файл microsoft-spark-<spark-version>-<spark-dotnet-version>.jar.Upload the appropriate microsoft-spark-<spark-version>-<spark-dotnet-version>.jar.

  3. Измените следующие параметры, чтобы вместо <your-app-name> указать правильное имя опубликованного исполняемого файла.Modify the following parameters to include the correct name for the executable that you published in place of <your-app-name>:

    Main Class: org.apache.spark.deploy.dotnet.DotnetRunner
    Arguments /dbfs/apps/<your-app-name>.zip <your-app-name>
    
  4. Настройте для кластера ссылку на существующий кластер, для которого вы уже настроили скрипт инициализации.Configure the cluster to point to an existing cluster for which you have already set the init script.

Публикация и запуск приложенияPublish and run your app

  1. Убедитесь, что приложение опубликовано, а код приложения не использует SparkSession.Stop().Ensure you have published your app, and that your application code does not use SparkSession.Stop().

  2. Чтобы передать приложение в кластер Databricks, используйте Databricks CLI.Use Databricks CLI to upload your application to your Databricks cluster. Например, следующая команда отправляет опубликованное приложение в ваш кластер.For example, use the following command to upload your published app to your cluster:

    cd <path-to-your-app-publish-directory>
    databricks fs cp <your-app-name>.zip dbfs:/apps/<your-app-name>.zip
    
  3. Если в приложении есть определяемые пользователем функции, сборки приложения (например, библиотеки DLL, содержащие определяемые пользователем функции и их зависимости) необходимо поместить в рабочий каталог каждой роли Microsoft.Spark.Worker.If you have any user-defined functions in your app, the app assemblies, such as DLLs that contain user-defined functions along with their dependencies, need to be placed in the working directory of each Microsoft.Spark.Worker.

    Отправка сборок приложения в кластер Databricks.Upload your application assemblies to your Databricks cluster:

    cd <path-to-your-app-publish-directory>
    databricks fs cp <assembly>.dll dbfs:/apps/dependencies
    

    Раскомментируйте и измените раздел зависимостей приложения в файле db-init.sh, указав путь к зависимостям приложения.Uncomment and modify the app dependencies section in db-init.sh to point to your app dependencies path. После этого отправьте обновленный файл db-init.sh в кластер:Then, upload the updated db-init.sh to your cluster:

    cd <path-to-db-init-and-install-worker>
    databricks fs cp db-init.sh dbfs:/spark-dotnet/db-init.sh
    
  4. Чтобы запустить задание, последовательно выберите Кластер Databricks > Задания > [имя_задания] > Запустить сейчас.Navigate to Databricks cluster > Jobs > [Job-name] > Run Now to run your job.

Следующие шагиNext steps