【问题标题】:Cloud Composer (Airflow) jobs stuckCloud Composer (Airflow) 作业卡住
【发布时间】:2018-08-15 13:25:25
【问题描述】:

我的Cloud Composer 托管Airflow 卡住了几个小时,因为我取消了一个耗时太长的任务实例(我们称之为任务 A)

我已清除所有 DAG 运行和任务实例,但有一些作业正在运行,还有一个作业处于关闭状态(我想是任务 A 的作业)(snapshot of my Jobs)。

此外,调度程序似乎从recently deleted DAGs keep appearing in the dashboard开始就没有运行

有没有办法杀死作业或重置调度程序?任何能让作曲家解脱的想法都将受到欢迎。

【问题讨论】:

    标签: google-cloud-platform airflow google-cloud-composer


    【解决方案1】:

    您可以按如下方式重新启动调度程序:

    从您的云外壳:

    1.确定您环境的 Kubernetes 集群:

    gcloud composer environments describe ENVIRONMENT_NAME \
        --location LOCATION 
    

    2.获取凭据并连接到 Kubernetes 集群:

    gcloud container clusters get-credentials ${GKE_CLUSTER} --zone ${GKE_LOCATION}
    

    3.运行以下命令重启调度器:

    kubectl get deployment airflow-scheduler -o yaml | kubectl replace --force -f -
    

    第 1 步和第 2 步的详细信息here。第 3 步基本上将“airflow-scheduler”部署替换为自身,从而重新启动服务。

    如果重新启动调度程序没有帮助,您可能还需要重新创建 Composer 环境并在每次都发生这种情况时对 DAG 进行故障排除。

    【讨论】:

    • 看起来您不小心为第 2 步粘贴了与第 1 步相同的 sn-p。
    • 您可以简单地删除airflow-scheduler Pod,这将导致 Kubernetes 将其替换为新的。
    • 重启气流网络服务器怎么样?我尝试杀死重新启动气流调度程序,甚至删除 Pod,但网络服务器继续运行,我需要重新启动它..
    • @Leo,您应该能够通过updating the PyPackages 强制重新部署 Airflow Web 服务器,例如通过安装虚拟依赖项。根据您的用例,部署 self-managed Airflow web server 可能是一个不错的选择。
    • @ch_mike - 似乎没有部署气流调度程序或气流工作人员——只有气流监控和气流 sqlproxy。您是否有其他解决方法来重新启动调度程序?
    【解决方案2】:

    您正在运行哪个版本的 Composer?这是一个已知问题,工作可能会因测试版而卡住。 Composer 1.0.0 和 1.1.0 应该不会看到任何卡住的作业(SubDag 中的任务除外,这是一个已知的 Airflow 错误),请考虑迁移到最新的 Composer version

    【讨论】:

    • 我们实际上使用的是 1.1.0,在本周的星期一设置,还看到没有安排/排队或没有做任何状态的任务全部改变。如果发生这种情况,它会发生在我们作曲家中的所有 dag 上。如上所述重新启动调度程序会有所帮助。您能指出 SubDags 中的任务卡住的错误吗?
    • Sub-DAG 会自动被标记为回填(即气流对所有 subDAG 使用回填调度程序)。不幸的是,尽管失败了,但 Airflow 目前不会重新排队回填任务(请参见此处:github.com/apache/incubator-airflow/blob/master/airflow/…),更多详细信息请参见:issues.apache.org/jira/browse/AIRFLOW-1059
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多