VK Cloud logo

Негізгі Spark тапсырмаларымен жұмыс істеу

Spark тапсырмаларын кластерге әртүрлі тәсілдермен жіберуге болады:

  • Тәуелділіктері жоқ Spark қолданбалары үшін қолданба кодын тапсырма манифесіне беру жеткілікті. Бұл тәсіл төменде көрсетіледі.
  • Өз жұмысы үшін қосымша артефактілерді қажет ететін Spark қолданбалары үшін қажетті артефактілерді VK Object Storage бакетіне қолмен қосып, тапсырма манифесін өңдеу қажет. Бұл тәсіл ClickHouse-пен жұмыс істеу мысалында көрсетілген.

Мысал ретінде π санының жуық мәнін есептейтін қолданба пайдаланылады.

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

  1. Cloud ML Platform кітапханасын орнатыңыз.

  2. Қолжетімділік токенін жасаңыз. Бұл токен кітапханамен жұмыс істеу үшін қажет.

    Администратор рөлі бар токен де, Пользователь рөлі бар токен де жарайды.

  3. Spark кластерін жасаңыз.

    Кластер параметрлерін өз қалауыңыз бойынша таңдаңыз.

  4. Скриптті орындап, жобадағы Spark кластерлері туралы ақпаратты алыңыз:

    from mlplatform_client import MLPlatformREFRESH_TOKEN = "<значение токена доступа>"mlp = MLPlatform(REFRESH_TOKEN)print(mlp.get_clusters())

    Кластерлер туралы толық ақпарат шығарылады.

  5. Жасалған кластердің идентификаторын тауып, жазып алыңыз (id өрісінде болады).

1. Spark қолданбасының коды бар файлды жасаңыз

Бұл қолданба есептеулерді Spark кластерінің тораптары бойынша тарата отырып, Монте-Карло әдісімен π санының жуық мәнін есептейді.

2. Spark тапсырмасын кластерге жіберіңіз

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

from mlplatform_client import MLPlatformREFRESH_TOKEN = "<значение токена доступа>"CLUSTER_ID = "<идентификатор кластера>"PY_FILE = "calculate-pi.py"JOB_NAME = "pi-spark-job"mlp = MLPlatform(REFRESH_TOKEN)spark_job_manifest = mlp.get_default_manifest(CLUSTER_ID, JOB_NAME)spark_job_info = mlp.spark_submit_job(CLUSTER_ID, spark_job_manifest, PY_FILE)print(spark_job_info)

Жіберілген тапсырма туралы ақпарат шығарылады, мысалы:

Job: pi-spark-job, status: SUBMITTED, created_at: ...

Әдепкі бойынша Spark тапсырмасына арналған манифестте Spark қолданбасының жұмысына қажетті файлдардың қайда орналасқаны туралы мәліметтер жоқ.

π санын есептейтін қолданбаның жұмысы үшін тек бір орындалатын файл қажет, ешқандай қосымша артефактілер пайдаланылмайды.

Мұндай қарапайым жағдайда Spark қолданбасының орындалатын файлын VK Object Storage бакетіне орналастырып, содан кейін манифестке қажетті мәліметтерді қосу үшін әдепкі манифестті түзетудің қажеті жоқ.

Тапсырманы кластерге жіберу кезінде орындалатын файлдың атын беру жеткілікті:

spark_job_info = mlp.spark_submit_job(CLUSTER_ID, spark_job_manifest, PY_FILE)

Cloud ML Platform кітапханасы көрсетілген файлдағы кодты орындауға болатындай етіп манифестті өзі түзетеді.

3. Spark тапсырмасының күйін қадағалаңыз

  1. Тапсырма логтарында π санын есептеу нәтижесі пайда болғанына көз жеткізіңіз. Егер нәтиже шықпаса, логтарды алу үшін скриптті тағы бір рет іске қосыңыз: тапсырма әлі аяқталмаған сәттегі аралық жұмыс логтары шығарылуы мүмкін.

    from mlplatform_client import MLPlatformREFRESH_TOKEN = "<значение токена доступа>"CLUSTER_ID = "<идентификатор кластера>"JOB_NAME = "pi-spark-job"mlp = MLPlatform(REFRESH_TOKEN)logs = mlp.spark_job_logs(CLUSTER_ID, JOB_NAME)print(logs)
  2. (Опционалды) Кластердегі оқиғалар туралы ақпарат алыңыз. Ол, мысалы, ақауларды іздеу кезінде кластер мен тапсырмалардың ағымдағы күйін білуге мүмкіндік береді.

    from mlplatform_client import MLPlatformREFRESH_TOKEN = "<значение токена доступа>"CLUSTER_ID = "<идентификатор кластера>"mlp = MLPlatform(REFRESH_TOKEN)events = mlp.spark_events(CLUSTER_ID)print(events)

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

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

  1. Spark кластерін жойыңыз.
  2. Осы Spark кластеріне арналған Docker тізілімін жойыңыз.
  3. Қолжетімділік токенін жойыңыз.