2016-09-12 3 views
5

Gibt es eine Möglichkeit, ssh zu verschiedenen Server und führen Sie BashOperator mit Airbnb Airflow? Ich versuche, einen Hub-SQL-Befehl mit Airflow ausführen, aber ich muss SSH auf eine andere Box, um die Hive-Shell ausführen. Meine Aufgaben sollte wie folgt aussehen:Airflow: Wie SSH und BashOperator von einem anderen Server ausführen

  1. SSH server1
  2. Start Hive Shell
  3. laufen Befehl Hive

Dank!

Antwort

9

Ich denke, dass ich dachte, es einfach aus:

  1. eine SSH-Verbindung in UI unter Admin> Verbindung erstellen. Hinweis: wird die Verbindung gelöscht werden, wenn Sie die Datenbank zurücksetzen

  2. In der Python-Datei hinzufügen die folgenden

    from airflow.contrib.hooks import SSHHook 
    sshHook = SSHHook(conn_id=<YOUR CONNECTION ID FROM THE UI>) 
    
  3. die SSH-Operator-Task hinzufügen

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

Dank!

+2

Beachten Sie, dass Sie auch den Operator importieren müssen: from airflow.contrib.operators.ssh_execute_operator importieren Sie SSHExecuteOperator – rotten

Verwandte Themen