[Документация Yandex Cloud](../../../index.md) > [Yandex DataSphere](../../index.md) > [Пошаговые инструкции](../index.md) > Работа с ресурсами > Работа с коннекторами Spark

# Работа с коннекторами Spark

В DataSphere вы можете использовать [коннекторы Spark](../../concepts/spark-connector.md), чтобы работать с уже существующими или автоматически создаваемыми кластерами [Yandex Data Processing](../../../data-proc/index.md).

## Перед началом работы {#before-begin}

Для работы с кластерами Yandex Data Processing:

1. [Укажите в настройках проекта](../projects/update.md) следующие параметры:

   * [Каталог по умолчанию](../../../resource-manager/concepts/resources-hierarchy.md#folder) для интеграции с другими сервисами Yandex Cloud. В нем будет развернут кластер Yandex Data Processing в рамках текущих [квот](../../../data-proc/concepts/limits.md) облака, а стоимость использования кластера будет списана с платежного аккаунта облака.
   * [Сервисный аккаунт](../../../iam/concepts/users/service-accounts.md) с [ролью](../../../iam/concepts/access-control/roles.md) `vpc.user`, от имени которого DataSphere будет работать с сетью кластера Yandex Data Processing.
   * [Подсеть](../../../vpc/concepts/network.md#subnet) для связи DataSphere с кластером Yandex Data Processing. Указанная подсеть должна находиться в [зоне доступности](../../../overview/concepts/geo-scope.md), в которой создано сообщество. Кластеру Yandex Data Processing необходим доступ в интернет, поэтому в подсети должен быть [настроен NAT-шлюз](../../../vpc/operations/create-nat-gateway.md). После указания подсети время выделения вычислительных ресурсов может быть увеличено.

1. Создайте [сервисного агента](../../../iam/concepts/service-control.md#service-agent):

   1. Чтобы разрешить сервисному агенту работать в DataSphere, попросите администратора или владельца вашего облака выполнить команду в Yandex Cloud CLI:
   
      ```bash
      yc iam service-control enable datasphere --cloud-id <идентификатор_облака>
      ```
   
      Где `--cloud-id` — [идентификатор облака](../../../resource-manager/operations/cloud/get-id.md), с которым вы будете работать в сообществе DataSphere.

   1. Создайте сервисный аккаунт с ролями:

      * `dataproc.agent` — для использования кластеров Yandex Data Processing.
      * `dataproc.admin`— для создания кластеров из шаблонов Yandex Data Processing.
      * `vpc.user` — для работы с сетью кластера Yandex Data Processing.
      * `iam.serviceAccounts.user` — для создания ресурсов в каталоге от имени сервисного аккаунта.

   1. В настройках сообщества в блоке **Кластеры Spark** нажмите **Добавить сервисный аккаунт** и выберите созданный сервисный аккаунт.
   
{% note warning %}

Постоянный кластер Yandex Data Processing должен иметь настройку `livy:livy.spark.deploy-mode : client`.

{% endnote %}

## Создать коннектор Spark {#create}

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. В блоке **Ресурсы проекта** нажмите ![spark-connector](../../../_assets/console-icons/route.svg)**Коннектор Spark**.
1. Нажмите **Создать коннектор**.
1. В поле **Имя** задайте имя коннектора. Формат имени:

   * Длина — от 3 до 63 символов.
   * Может содержать строчные и заглавные буквы латинского и русского алфавита, цифры, дефисы, подчеркивания и пробелы.
   * Первый символ должен быть буквой. Последний символ не может быть дефисом, подчеркиванием или пробелом.

1. В блоке **Кластер Yandex Data&nbsp;Processing** выберите, с каким кластером вы планируете работать:

   * **Выберите кластер** — выберите существующий кластер Yandex Data Processing или нажмите **Создать кластер в Yandex Data&nbsp;Processing**, чтобы перейти в Yandex Data Processing и создать новый. Постоянный кластер Yandex Data Processing должен иметь настройку `livy:livy.spark.deploy-mode : client`.
   * **Создать временный кластер** — выберите, чтобы создать временный кластер Yandex Data Processing. Временный кластер будет создан при первом запуске вычислений в ноутбуке проекта.

1. (Опционально) В блоке **Настройки S3** укажите идентификатор [статического ключа доступа](../../../iam/operations/authentication/manage-access-keys.md#create-access-key) и [секрет](../../concepts/secrets.md), в котором хранится секретная часть статического ключа для [коннектора S3](../../concepts/s3-connector.md).

   **Настройки S3** позволяет указать данные для подключения к бакету S3. Это рекомендуется при работе с бакетами Object Storage в любых кластерах, и крайне желательно для кластеров Yandex Data Processing без включенной опции HDFS.

1. В блоке **Настройки Spark** выберите опцию **Использовать настройки по умолчанию**, чтобы использовать стандартные настройки кластера Yandex Data Processing или укажите параметры *Ключ* и *Значение*, чтобы вручную дополнить или изменить параметры кластера Yandex Data Processing.

   {% note tip %}

   Для кластеров Yandex Data Processing без включенной опции HDFS задайте дополнительный параметр `spark.hadoop.fs.s3a.fast.upload.buffer` = `bytebuffer`.

   Для собственных кластеров с типом подключения Spark Connect задайте дополнительный параметр `dataproc:spark-connect` = `enabled`.

   {% endnote %}

1. Нажмите **Создать**. Откроется страница с информацией о созданном коннекторе.

## Использовать кластер Yandex Data Processing в проекте {#usage}

{% note warning %}

Если вы работаете с кластерами Yandex Data Processing с помощью коннектора Spark, вместо стандартного окружения проекта в ноутбуке будет использоваться специальное окружение для работы с кластером.

{% endnote %}

Откройте проект DataSphere:

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. Нажмите кнопку **Открыть проект в JupyterLab** и дождитесь окончания загрузки.
1. Откройте вкладку с ноутбуком.

1. Запустите любую ячейку, выбрав в меню **Run** ⟶ **Run Selected Cells** или использовав сочетание клавиш **Shift** + **Enter**.
1. В открывшемся окне **Конфигурации ВМ ноутбука** перейдите на вкладку **Для кластера Yandex Data&nbsp;Processing**.
1. Выберите необходимую конфигурацию и коннектор.
1. Нажмите **Выбрать**.

Чтобы выключить временный кластер Yandex Data Processing, созданный с помощью коннектора Spark, остановите ВМ ноутбука.

Чтобы перестать платить за постоянный кластер Yandex Data Processing, [удалите его](../../../data-proc/operations/cluster-delete.md) в консоли управления.

## Изменить коннектор Spark {#change}

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. В блоке **Ресурсы проекта** нажмите ![spark-connector](../../../_assets/console-icons/route.svg) **Коннектор Spark**.
1. В списке коннекторов Spark выберите тот, который вы хотите изменить. Нажмите ![pencil](../../../_assets/console-icons/pencil-to-line.svg) **Редактировать**.
1. Измените коннектор Spark: отредактируйте имя или параметры.
1. Нажмите **Сохранить**.

## Поделиться коннектором Spark {#share}

{% note info %}

Делиться ресурсами можно только в рамках одной организации между сообществами, созданными в одной [зоне доступности](../../../overview/concepts/geo-scope.md).

{% endnote %}

Чтобы поделиться коннектором Spark в сообществе, понадобятся роли `Editor` в проекте и `Developer` в сообществе. Подробнее о ролях, действующих в DataSphere, читайте в разделе [Управление доступом в DataSphere](../../security/index.md).

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. В блоке **Ресурсы проекта** нажмите ![spark-connector](../../../_assets/console-icons/route.svg) **Коннектор Spark**.
1. Выберите нужный коннектор Spark в списке.
1. Перейдите на вкладку **Доступ**.
1. Включите опцию видимости напротив названия сообщества, с которым нужно поделиться коннектором Spark.

Чтобы коннектор Spark стал доступен для работы в другом проекте, администратор проекта должен [добавить](../projects/use-shared-resource.md) его на вкладке **Доступные**.

## Удалить коннектор Spark {#delete}

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

1. Выберите нужный проект в своем сообществе или на [главной странице](https://datasphere.yandex.cloud) DataSphere во вкладке **Недавние проекты**.
1. В блоке **Ресурсы проекта** нажмите ![spark-connector](../../../_assets/console-icons/route.svg) **Коннектор Spark**.
1. В списке коннекторов Spark выберите тот, который хотите удалить. Нажмите **Удалить**.
1. Нажмите **Подтвердить**.

Отобразится сообщение о том, что коннектор удален.

{% note warning %}

Фактически [удаление ресурсов](../../../overview/concepts/data-deletion.md) может занимать до 72 часов.

{% endnote %}