Airflow: 別のサーバーから SSH して BashOperator を実行する方法 質問する

Airflow: 別のサーバーから SSH して BashOperator を実行する方法 質問する

Airbnb の Airflow を使用して別のサーバーに SSH 接続し、BashOperator を実行する方法はありますか? Airflow で hive sql コマンドを実行しようとしていますが、hive シェルを実行するには別のボックスに SSH 接続する必要があります。タスクは次のようになります。

  1. サーバー1へのSSH
  2. Hiveシェルを起動する
  3. Hiveコマンドを実行する

ありがとう!

ベストアンサー1

Airflow 2.x では使用できません。

私はちょうどそれを理解したと思います:

  1. UIの「管理 > 接続」でSSH接続を作成します。注意: データベースをリセットすると接続は削除されます。

  2. Pythonファイルに以下を追加します

     from airflow.contrib.hooks import SSHHook
     sshHook = SSHHook(conn_id=<YOUR CONNECTION ID FROM THE UI>)
    
  3. SSHオペレータータスクを追加する

     t1 = SSHExecuteOperator(
         task_id="task1",
         bash_command=<YOUR COMMAND>,
         ssh_hook=sshHook,
         dag=dag)
    

ありがとう!

おすすめ記事