2017-04-05 8 views
4

私は気流サーバーとワーカーを別のAWSマシンで実行しています。 私は、それらの間のそのDAGのフォルダを同期の両方にairflow initdbを走った、と私はairflow list_tasks <dag_id>気流:dag_idが見つかりませんでした

を実行したときにdag_idさんは、私は、スケジューラや労働者を実行すると、私は労働者に、このエラーが出ると同じであることをチェックしました:

airflow.exceptions.AirflowException:dag_idが見つかりませんでした:。ダグが存在しなかったか、解析できなかった。 [...]コマンド... - ローカル-sd /home/ubuntu/airflow/dags/airflow_tutorial.py '

問題があるように見えるのは、そのパスが間違っているということです(/ home/Ubuntuの/気流/ DAGの/ airflow_tutorial.py)正しいパスはサーバー・マシン上でのHadoop/...

を/ホーム/ あるので、パスはUbuntuのであるが、両方の設定ファイルには、単に~/airflow/...

です

作業者はこのパスで正しいパスではなくなりますか?

どのように私はそれを自分の家の家で見ることを伝えるのですか?

編集:

  • それは設定の問題そうです。私はgrep -R ubuntuを実行しました。ログには唯一の出現番号があります。
  • 私はコンピュータ上でubuntuを使って同じものを実行すると、すべてが動作します。私はいくつかの理由のために空気の流れがタスク
+0

この問題も発生しています。 '.-- local -sd'は間違ったパスを指しています。まだ解決策はありますか? – DevEx

+0

DAGにエラーが見つかりました。私は誤って別のディレクトリからモジュールをインポートしましたが、今解決されました。 – DevEx

答えて

1

のフルパスで労働者を提供することを信じるにつながるあなたは/ホーム/ Hadoopの/すなわちに明示的に指すように設定ファイルにdags_folderパラメータを設定しようとしたことがあり希望のパス?

このパラメータはairflow runコマンドに--rawパラメータを追加するのDAG

+0

はい、もちろん... – Dotan

6

を探して元の例外だったかを見るために私を助けたために場所を制御します。私のケースでは、メタデータ・データベースのインスタンスが遅すぎ、タイムアウトのためロード・ダグが失敗しました。 airflow.cfgにこのことができます

希望をパラメータdagbag_import_timeoutを増やす

  • アップグレード・データベース・インスタンス
  • :私はでそれを修正しました!

1

私は同じことを経験している - ワーカープロセスは、スケジューラマシン上ではなく、ワーカーマシン上のDAGフォルダに対応する--sd引数を渡すために表示されます(dags_folderは上の気流の設定ファイルで正しく設定されている場合でも、ワーカー)。私の場合は、dags_folderを同じ値に設定できるように、スケジューラホスト上にシンボリックリンクを作成することで作業を進めることができました。 (あなたの例では、これはスケジューラーマシン上で/ home/hadoop - >/home/ubuntuというシンボリックリンクを作成し、次に/ home/hadoopにdags_folderを設定することを意味します)。だから、これは本当に問題への答えではありませんが、場合によっては実行可能な回避策です。

関連する問題