Планирование работ по зажиганию, выполняемых в Кубернетесе с помощью воздушного потока - PullRequest
1 голос
/ 24 октября 2019

У меня есть искорка, которая работает через стручок Кубернетеса. До сих пор я использовал файл Yaml для запуска своих заданий вручную. Теперь я хочу запланировать свои искровые работы через поток воздуха. Это первый раз, когда я использую воздушный поток, и я не могу понять, как я могу добавить свой файл Yaml в воздушный поток. Из того, что я прочитал, я могу планировать свои работы с помощью DAG в Airflow. Вот пример даг:

from airflow.operators import PythonOperator
from airflow.models import DAG
from datetime import datetime, timedelta

args = {'owner':'test', 'start_date' : datetime(2019, 4, 3), 'retries': 2, 'retry_delay': timedelta(minutes=1) }
dag = DAG('test_dag', default_args = args, catchup=False)

def print_text1():
    print("hell-world1")

def print_text():
    print('Hello-World2')

t1 = PythonOperator(task_id='multitask1', python_callable=print_text1, dag=dag)
t2 = PythonOperator(task_id='multitask2', python_callable=print_text, dag=dag)
t1 >> t2

В этом случае вышеописанные методы будут выполняться после другого, как только я сыграю DAG. Что делать, если я хочу запустить задание на отправку? Я использую Spark 2.4.4

1 Ответ

0 голосов
/ 31 октября 2019

Airflow имеет концепцию операторов , которые представляют задачи Airflow. В вашем примере используется PythonOperator , который просто выполняет код Python и, скорее всего, не тот, который вас интересует, если вы не отправляете задание Spark в коде Python. Есть несколько операторов, которые вы можете использовать:

  • BashOperator , который выполняет данный сценарий bash для вас. Вы можете запустить kubectl или spark-submit, используя его напрямую
  • SparkSubmitOperator , специальный оператор для вызова spark-submit
  • KubernetesPodOperator , создаетМодуль Kubernetes для вас, вы можете запустить свой модуль Driver напрямую, используя его
  • Гибридные решения, например. HttpOperator + Livy в Kubernetes , вы запускаете сервер Livy в Kubernetes, который служит в качестве сервера заданий Spark и предоставляет REST API для вызова Airflow HttpOperator

Примечание: для каждого из операторов вам необходимо убедиться, что ваша среда Airflow содержит все необходимые зависимости для выполнения, а также учетные данные, настроенные для доступа к необходимым службам.

Также вы можете сослаться на существующий поток:

...