2017-09-09 9 views
0

Apache Airflowを使用したアーキテクチャでは、私の考えが混乱します。Apache Airflow Distributed Processing

私が知っている場合 oozieでhqlまたはsqoop文を実行すると、oozieは要求をデータ・ノードに送ります。

私はApache Airflowで同じことを達成したいと思います。私は、シェルスクリプト、hqlまたはsqoopコマンドを実行したい、私は私のコマンドがデータノードによって分散して実行されていることを確認したい。 エアフローには異なるエグゼキュータタイプがあります。異なるデータノードでコマンドを同時に実行するにはどうすればよいですか?

答えて

0

分散ワーカーでタスクを実行しているようです。その場合は、CeleryExecutorを使用することを検討してください。

CeleryExecutorは、 ワーカーの数をスケールアウトする方法の1つです。これを行うには、セラーリーバックエンド (RabbitMQ、Redis、...)を設定し、エグゼクティブ パラメータがCeleryExecutorを指すようにairflow.cfgを変更し、関連するセロリ設定を提供する必要があります。

参照:https://airflow.apache.org/configuration.html#scaling-out-with-celery

0

OozieはしっかりとHadoopのノードに結合され、すべてのスクリプトは、セロリExecutorでエアフローがより良いアーキテクチャを持っているのに対し、HDFSにアップロードする必要があります。 Celeryエグゼキュータで同じスクリプトを使用すると、正しいキューを使用して複数のノードと特定のノードでhqlを同時に実行することができ、一部のワーカーは特定のキューをリッスンしてこれらのアクションを実行できます。

関連する問題