Интеграция с Apache Spark™
С помощью интеграции DataSphere с сервисом Yandex Data Proc вы можете производить вычисления на кластерах Apache Spark™. Вычисления производятся в сессиях, созданных с помощью Apache Livy.
Кластер Data Proc
Вы можете использовать кластер, уже созданный в вашей подсети, или создать новый. Для корректной работы интеграции необходимо настроить проект и назначить роли.
Настройка проекта DataSphere для работы с кластерами Data Proc
Чтобы вы могли создавать кластеры Data Proc из DataSphere или запускать уже существующие кластеры Data Proc, у проекта должны быть указаны:
- сервисный аккаунт, от имени которого будут производиться все операции с кластерами Data Proc;
- подсеть, в которой будет создаваться или из которой будет подключаться уже существующий кластер Data Proc. В рамках интеграции доступны только подсети, созданные в зоне доступности
ru-central1-a
.
Эти параметры необходимо указать в дополнительных настройках проекта.
Примечание
Если вы указали подсеть в настройках проекта, время выделения вычислительных ресурсов может быть увеличено.
Роли, необходимые для корректной работы с кластерами Data Proc
- Для создания кластера Data Proc вам необходимо разрешение на сервисный аккаунт, от имени которого DataSphere будет выполнять операции. Это разрешение входит в роли
iam.serviceAccounts.user
,editor
и выше. - Для управления кластерами Data Proc сервисному аккаунту необходимы роли:
vpc.user
— для доступа к сети, указанной в настройках проекта;mdb.all.admin
— для создания и использования кластеров Data Proc;mdb.dataproc.agent
— для создания и использования кластеров Data Proc.
Подробнее об управлении доступом.
Создание кластера из проекта DataSphere
Особенности кластера, созданного из проекта DataSphere:
-
Кластер будет создан в каталоге с проектом и в подсети, указанной в настройках проекта.
-
DataSphere следит за временем жизни кластера и автоматически удаляет его после двух часов бездействия.
Кластер Data Proc считается активным, если на нем производятся вычисления или если активен ноутбук в проекте с кластером. Ноутбук считается активным, если перерыв в вычислениях составляет менее 20 минут.
Подробнее о том, как создать кластер из проекта.
Создание кластера в сервисе Data Proc
Особенности кластера, созданного в сервисе Data Proc:
- Вы управляете жизненным циклом кластера.
- Для корректной работы необходима версия кластера Data Proc не ниже
1.3
, а также должны быть включены сервисы:LIVY
,SPARK
,YARN
иHDFS
.
Подробнее о том, как создать кластер в сервисе.
Вычислительные сессии
В кластере Data Proc ваш код выполняется в сессиях. Сессия хранит промежуточное состояние до тех пор, пока вы не удалите сессию или кластер. У каждого кластера есть сессия по умолчанию. Ее идентификатор равен идентификатору проекта.
Для управления сессиями используйте следующие команды:
%create_livy_session --host $host --id $id
— создание сессии;%delete_livy_session $id
— удаление сессии.
Запуск python-кода
Код запускается в ячейках с заголовком:
#!spark [--cluster <кластер>] [--session <сессия>] [--variables <переменная>].
Где:
<кластер>
— кластер Data Proc, на котором будут производиться вычисления. Может быть:- HTTP-ссылкой на Livy, например,
http://10.0.0.8:8998/
. - Именем кластера, созданного через интерфейс ноутбука.
- Кластером Data Proc из настроек проекта в консоли управления, если параметр пропущен.
- HTTP-ссылкой на Livy, например,
<сессия>
— идентификатор вычислительной сессии. Если параметр пропущен, используется сессия кластера Data Proc по умолчанию.<переменная>
— переменная, импортированная в ячейку из ядра. Поддерживаемые типы:bool
,int
,float
,str
,pandas.DataFrame
(преобразовывается в Spark DataFrame).