30

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

  1. server1 への SSH
  2. ハイブシェルを起動
  3. ハイブコマンドを実行する

ありがとう!

4

3 に答える 3

43

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)
    

ありがとう!

于 2016-09-14T15:29:01.963 に答える