別のサーバーに ssh し、Airbnb の Airflow を使用して BashOperator を実行する方法はありますか? Airflow で hive sql コマンドを実行しようとしていますが、hive シェルを実行するには別のボックスに SSH 接続する必要があります。私のタスクは次のようになります。
- server1 への SSH
- ハイブシェルを起動
- ハイブコマンドを実行する
ありがとう!
私はちょうどそれを理解したと思います:
[管理] > [接続] の下の UI で SSH 接続を作成します。注: データベースをリセットすると、接続が削除されます
Python ファイルに以下を追加します。
from airflow.contrib.hooks import SSHHook
sshHook = SSHHook(conn_id=<YOUR CONNECTION ID FROM THE UI>)
SSH オペレーター タスクを追加する
t1 = SSHExecuteOperator(
task_id="task1",
bash_command=<YOUR COMMAND>,
ssh_hook=sshHook,
dag=dag)
ありがとう!