DataProc
August 10, 2022

Создание кластера dataproc

Сегодня разберём процесс создания кластера dataproc версии 2.0 с нуля. Создадим дополнительные сущности и запустим кластер. После этого подключимся к нему.

Создадим вспомогательные для работы кластера сущности: сервисный аккаунт, группу безопасности, лог группу. Создадим несколько переменных для начала:

export FOLDER_ID=$(yc config get folder-id)
export ZONE_ID=ru-central1-a

1. Создадим сервисный аккаунт(SA) и назначим ему права.

yc iam service-account create --name dataproc-agent
export SA=$(yc iam service-account get dataproc-agent --format json | jq -r '.id')
yc resource folder add-access-binding $FOLDER_ID --role mdb.dataproc.agent --subject serviceAccount:$SA

2. Создадим группу безопасности и добавим в неё необходимые правила.

export NETWORK_ID=$(yc vpc network get cameda-test --format json | jq -r '.id')
yc vpc sg create --name dataproc-sg \
"--rule" "description=access all egress port,direction=egress,from-port=0,to-port=65535,protocol=any,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 22 port,direction=ingress,port=22,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 443 port,direction=ingress,port=443,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Self,direction=ingress,from-port=0,to-port=65535,protocol=any,predefined=self_security_group" \
--network-id $NETWORK_ID --description "dataproc access" --folder-id $FOLDER_ID --async

3. Создадим log группу для хранения логов кластера.

yc logging group create \
--name=dataproc \
--description "dataproc log group" \
--retention-period=12h \
--async

4. Создаём кластер.

export SG=$(yc vpc sg get dataproc-sg --format json | jq -r '.id')
export LOG=$(yc logging group get dataproc --format json | jq -r '.id')
export SUBNET_ID=$(yc vpc subnet get subnet-a --format json | jq -r '.id')
yc dataproc cluster create \
--folder-id $FOLDER_ID \
--zone=$ZONE_ID \
--name=cam-dataproc \
--description='TEST' \
--service-account-id=$SA \
--version=2.0 \
--ssh-public-keys-file=/Users/cameda/id_rsa.pub \
--subcluster name=cam-masternode,`
`role=masternode,`
`resource-preset=s2.micro,`
`disk-type=network-ssd,`
`disk-size=128,`
`subnet-id=$SUBNET_ID,`
`assign-public-ip=true \
--subcluster name=cam-datanode,`
`role=datanode,`
`resource-preset=s2.small,`
`disk-type=network-ssd,`
`disk-size=128,`
`subnet-id=$SUBNET_ID,`
`hosts-count=1,`
`assign-public-ip=true \
--bucket=cam-dataproc \
--deletion-protection=false \
--ui-proxy=true \
--security-group-ids $SG \
--log-group-id=$LOG \
--async

Подключение к кластеру.

К кластеру можно подключиться используя web морду от YARN, HADOOP. Ссылки будут находиться в UI на странице кластера.

Также есть возможность подключиться по ssh. Для этого у мастер ноды должен быть включен публичный доступ, если подключение происходит извне контура облака.

Подключаемся от имени пользователя ubuntu.

Если необходимы права пользователя root, то можно использовать sudo -i

Пример строки для подключения: 
ssh -i ~/.ssh/id_rsa ubuntu@ip_address

Полезные ссылки.

Про зону доступности тут: https://teletype.in/@cameda/S34zdiTcbUM
Сеть создавали тут: https://teletype.in/@cameda/ZbTkF70KWK9