-1

我有一个使用 spark-submit 脚本手动运行的 Spark Streaming 作业。我想安排它每天运行。

Azkaban、Airflow、Oozie、Crontab、Spark-jobserver、Quartz 或 Luigi 哪个更好。

任何建议表示赞赏!

4

1 回答 1

1

我有机会从这个列表中与 Oozie 和 Airflow 合作。最初我从 Oozie 开始,但对于 spark 2.0,Oozie 根本不是一个好的选择。我永远无法使用 Oozie 运行我的 Spark2.0 作业。然后我搬到了 Airflow ,它设置起来又快又容易。它带有足够的示例,可以很好地从基本工作流程开始。您可以快速浏览所有这些内容,或者等待从事所有这些工作的人提供一些反馈。根据您的要求,Airflow 已经足够了。如果您选择 Airflow,您可以使用以下 DAG 来满足您的要求。

import airflow
from airflow.models import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import timedelta

default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017, 8, 23,22,40),
'end-date': datetime(2017, 9, 20, 22, 40),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}

dag = DAG(
    'Spark-Workflow-DAG',
    default_args=default_args,
    description='Spark workflow',
    schedule_interval=timedelta(days=1))

t1 = BashOperator(
    task_id='Execute_Spark_Streaming_Job',
    bash_command="your complete spark submit command with all the arguments",
dag=dag)

对我有帮助的链接很少。 https://blog.insightdatascience.com/scheduling-spark-jobs-with-airflow-4c66f3144660 https://www.agari.com/automated-model-building-emr-spark-airflow/

于 2017-09-01T14:57:13.520 回答