VK Cloud logo

Spark кластерін құру

Мақалада VK Data Platform платформасында Terraform көмегімен Spark кластерін жасау мысалы келтірілген.

Кластерді жасау кезінде мыналар пайдаланылады:

Параметрлердің толық сипаттамасы — Terraform провайдерінің құжаттамасында.

Дайындық қадамдары

  1. Квоталарды тексеріңіз. Таңдалған аймақта кластерді жасау үшін ресурстар жеткілікті екеніне көз жеткізіңіз. Әртүрлі аймақтар үшін әртүрлі квоталар бапталуы мүмкін.

    Квоталарды ұлғайту үшін техникалық қолдау қызметіне хабарласыңыз.

  2. Егер әлі орындалмаса, Terraform-ды орнатып, ортаны баптаңыз.

  3. vkcs_provider.tf файлында провайдердің 0.7.0 немесе одан жоғары нұсқасы көрсетілгеніне көз жеткізіңіз. Егер провайдер нұсқасы төмен болса, провайдерді жаңартыңыз.

1. Кластер сипаттамасы бар файлды жасаңыз

Келесі мазмұнмен Terraform конфигурациясының main.tf файлын жасаңыз:

locals {  s3_bucket = "my_bucket"}resource "vkcs_dataplatform_cluster" "basic_spark" {  name            = "tf-basic-spark"  description     = "Production Spark cluster for data processing"  network_id      = vkcs_networking_network.db.id  subnet_id       = vkcs_networking_subnet.db.id  product_name    = "spark"  product_version = "3.5.1"  availability_zone = "GZ1"  configs = {    settings = [      {        alias = "sparkproxy.spark_version"        value = "spark-py-3.5.1:v3.5.1.2"      }    ]    maintenance = {      start = "0 0 1 * *"    }    warehouses = [      {        name = "spark"        connections = [          {            name = "s3_int"            plug = "s3-int"            settings = [              {                alias = "s3_bucket"                value = local.s3_bucket              },              {                alias = "s3_folder"                value = "tfexample-folder"              }            ]          },          {            name = "postgres"            plug = "postgresql"            settings = [              {                alias = "db_name"                value = vkcs_db_database.postgres_db.name              },              {                alias = "hostname"                value = "${vkcs_db_instance.db_instance.ip[0]}:5432"              },              {                alias = "username"                value = vkcs_db_user.postgres_user.name              },              {                alias = "password"                value = vkcs_db_user.postgres_user.password              }            ]          }        ]      }    ]  }  pod_groups = [    {      name  = "sparkconnect"      count = 1      resource = {        cpu_request = "10"        ram_request = "10"      }    },    {      name  = "sparkhistory"      count = 1      resource = {        cpu_request = "0.5"        ram_request = "1"      }      volumes = {        "data" = {          storage_class_name = "ceph-ssd"          storage            = "5"          count              = 1        }      }    }  ]}

Мұнда:

  • network_id — кластер орналастырылатын желінің идентификаторы. Кластер бар желіде де, жаңа желіде де орналастырылуы мүмкін. Идентификаторды манифесте көрсетуге, деректер көзінен немесе ресурстан алуға болады.

  • product_name — VK Data Platform платформасындағы Spark сервисінің атауы.

  • product_version — VK Data Platform платформасындағы Spark сервисінің нұсқасы.

  • availability_zone — кластер жасалатын қолжетімділік аймағы.

  • configs — кластер конфигурациясының параметрлері:

    • settings — жалпы параметрлер. sparkproxy.spark_version параметрі тапсырмаларды орындау үшін Spark нұсқасын анықтайды.

    • maintenance — Cron пішіміндегі техникалық қызмет көрсету басталатын уақыт.

    • warehousesдеректер көздеріне қосылымдар.

  • pod_groups — кластердің есептеу ресурстары топтары:

    • sparkconnect — деректерді интерактивті өңдеуге арналған ресурстар.
    • sparkhistory — Spark тапсырмаларының тарихын сақтауға арналған ресурстар.

2. (Опционалды) VK Data Platform платформасындағы Spark сервисін деректер көзі арқылы анықтаңыз

VK Data Platform платформасындағы Spark сервисін сипаттау үшін Terraform конфигурациясының product.tf файлын жасаңыз:

data "vkcs_dataplatform_product" "spark" {  product_name = "spark"  product_version = "3.5.1"}

Бұл деректер көзін пайдалану конфигурацияны икемдірек етуге мүмкіндік береді. Сіз main.tf файлында data.vkcs_dataplatform_product.spark.product_name және data.vkcs_dataplatform_product.spark.product_version мәндеріне сілтеме жасай аласыз.

Параметрлердің толық сипаттамасы — Terraform провайдерінің құжаттамасында.

3. (Опционалды) Кластер үшін желілік инфрақұрылым сипаттамасы бар файлды жасаңыз

Кластерге арналған желілік инфрақұрылым сипаттамасы бар Terraform конфигурациясының network.tf файлын жасаңыз:

Жобада бар желіге арналған деректер көзі сипаттамасының мысалы:

data "vkcs_networking_network" "default" {  name = "default"  sdn = "neutron"}

4. (Опционалды) Spark-ке қосылу үшін дерекқор сипаттамасы бар файлды жасаңыз

Spark қосылатын дерекқорды сипаттау үшін Terraform конфигурациясының db.tf файлын жасаңыз:

resource "vkcs_db_instance" "db_instance" {  name        = "db-instance"  flavor_id   = "STD3-2-8"  size        = 10  volume_type = "ceph-ssd"    network {    uuid = vkcs_networking_network.db.id  }    datastore {    type    = "postgresql"    version = "13"  }}resource "vkcs_db_database" "postgres_db" {  name    = "mydatabase"  dbms_id = vkcs_db_instance.db_instance.id}resource "vkcs_db_user" "postgres_user" {  name     = "myuser"  password = "securepassword123"  dbms_id  = vkcs_db_instance.db_instance.id}

5. Terraform көмегімен қажетті ресурстарды жасаңыз

  1. Terraform конфигурациясы файлдарын бір директорияға орналастырыңыз:

    • vkcs_provider.tf;
    • main.tf;
    • product.tf (егер жасалған болса);
    • network.tf (егер жасалған болса);
    • db.tf (егер жасалған болса).
  2. Осы директорияға өтіңіз.

  3. Конфигурация файлдарының дұрыс екенін және қажетті өзгерістерді қамтитынын тексеріңіз:

    terraform validate && terraform plan
  4. Өзгерістерді қолданыңыз:

    terraform apply

    Растауды сұрағанда yes енгізіңіз.

  5. Операцияның аяқталуын күтіңіз.

6. Конфигурацияның қолданылуын тексеріңіз

Spark кластерінің сәтті жасалғанына көз жеткізіңіз:

  1. VK Cloud жеке кабинетіне өтіңіз.
  2. Data PlatformСервис даналары бөліміне өтіңіз. Spark кластерінің жасалғанына және белсенді екеніне көз жеткізіңіз.

Пайдаланылмайтын ресурстарды жойыңыз

Егер Terraform көмегімен жасалған ресурстар енді қажет болмаса, оларды жойыңыз:

  1. Terraform конфигурациясы файлдары бар директорияға өтіңіз.

  2. Келесі команданы орындаңыз:

    terraform destroy

    Растауды сұрағанда yes енгізіңіз.

  3. Операцияның аяқталуын күтіңіз.