Apache spark 通过气流调度Kubernetes上运行的Spark作业
我有一个通过Kubernetes吊舱运行的spark任务。到目前为止,我一直在使用Yaml文件手动运行我的作业。 现在,我想通过气流来安排我的火花作业。 这是我第一次使用气流,我不知道如何在气流中添加Yaml文件。 从我所读到的是,我可以通过气流中的DAG来安排我的工作。 dag示例如下:Apache spark 通过气流调度Kubernetes上运行的Spark作业,apache-spark,kubernetes,airflow,Apache Spark,Kubernetes,Airflow,我有一个通过Kubernetes吊舱运行的spark任务。到目前为止,我一直在使用Yaml文件手动运行我的作业。 现在,我想通过气流来安排我的火花作业。 这是我第一次使用气流,我不知道如何在气流中添加Yaml文件。 从我所读到的是,我可以通过气流中的DAG来安排我的工作。 dag示例如下: from airflow.operators import PythonOperator from airflow.models import DAG from datetime import datetim
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提交作业,我应该怎么做?
我使用的是Spark 2.4.4气流有一个概念,表示气流任务。在您的示例中使用了,它只执行Python代码,很可能不是您感兴趣的代码,除非您在Python代码中提交Spark作业。您可以使用几个运算符:
- ,它将为您执行给定的bash脚本。您可以直接使用它运行
或kubectl
spark submit
- ,要调用的特定操作员
spark submit
- ,为您创建Kubernetes吊舱,您可以直接使用它启动驱动吊舱
- 混合解决方案,例如+,您在Kubernetes上启动Livy服务器,它充当Spark作业服务器,并提供RESTAPI供HttpOperator调用