Creazione di un plugin personalizzato con Apache Hive e Hadoop - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un plugin personalizzato con Apache Hive e Hadoop

Amazon MWAA estrae il contenuto di unplugins.zipa/usr/local/airflow/plugins. Questo può essere usato per aggiungere binari ai tuoi contenitori. Inoltre, Apache Airflow esegue il contenuto dei file Python inpluginscartella inavviare—che consente di impostare e modificare le variabili di ambiente. L'esempio seguente illustra i passaggi per creare un plug-in personalizzato utilizzando Apache Hive e Hadoop su un ambiente Amazon Managed Workflows per Apache Airflow e può essere combinato con altri plugin e binari personalizzati.

Versione

  • Il codice di esempio in questa pagina può essere utilizzato conApache Airflow v1nelPython 3.7.

  • Puoi usare l'esempio di codice in questa pagina conApache Airflow v2 e versioni successivenelPython 3.10.

Prerequisiti

Per utilizzare il codice di esempio in questa pagina, avrai bisogno di quanto segue:

Autorizzazioni

  • Non sono necessarie autorizzazioni aggiuntive per utilizzare l'esempio di codice in questa pagina.

Requisiti

Per utilizzare il codice di esempio in questa pagina, aggiungi le seguenti dipendenze al tuorequirements.txt. Per ulteriori informazioni, consulta Installazione delle dipendenze in Python.

Apache Airflow v2
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]
Apache Airflow v1
apache-airflow[hive]==1.10.12

Scarica le dipendenze

Amazon MWAA estrarrà il contenuto di plugins.zip in/usr/local/airflow/pluginssu ogni pianificatore e container di lavoro Amazon MWAA. Viene utilizzato per aggiungere binari al tuo ambiente. I passaggi seguenti descrivono come assemblare i file necessari per il plug-in personalizzato.

  1. Nel prompt dei comandi, vai alla directory in cui desideri creare il tuo plugin. Ad esempio:

    cd plugins
  2. ScaricaHadoopda unspecchio, ad esempio:

    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. ScaricaAlveareda unspecchio, ad esempio:

    wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  4. Crea una directory. Ad esempio:

    mkdir hive_plugin
  5. Estrai Hadoop.

    tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
  6. Estrai Hive.

    tar -xvzf apache-hive-3.1.2-bin.tar.gz -C hive_plugin

Plugin personalizzato

Apache Airflow eseguirà il contenuto dei file Python nella cartella dei plugin all'avvio. Viene utilizzato per impostare e modificare le variabili di ambiente. I passaggi seguenti descrivono il codice di esempio per il plug-in personalizzato.

  1. Nel prompt dei comandi, accedi ahive_pluginrubrica. Ad esempio:

    cd hive_plugin
  2. Copia il contenuto del seguente esempio di codice e salvalo localmente comehive_plugin.pynelhive_pluginrubrica.

    from airflow.plugins_manager import AirflowPlugin import os os.environ["JAVA_HOME"]="/usr/lib/jvm/jre" os.environ["HADOOP_HOME"]='/usr/local/airflow/plugins/hadoop-3.3.0' os.environ["HADOOP_CONF_DIR"]='/usr/local/airflow/plugins/hadoop-3.3.0/etc/hadoop' os.environ["HIVE_HOME"]='/usr/local/airflow/plugins/apache-hive-3.1.2-bin' os.environ["PATH"] = os.getenv("PATH") + ":/usr/local/airflow/plugins/hadoop-3.3.0:/usr/local/airflow/plugins/apache-hive-3.1.2-bin/bin:/usr/local/airflow/plugins/apache-hive-3.1.2-bin/lib" os.environ["CLASSPATH"] = os.getenv("CLASSPATH") + ":/usr/local/airflow/plugins/apache-hive-3.1.2-bin/lib" class EnvVarPlugin(AirflowPlugin): name = 'hive_plugin'
  3. Copia il contenuto del seguente testo e salvalo localmente come.airflowignorenelhive_pluginrubrica.

    hadoop-3.3.0 apache-hive-3.1.2-bin

Plugins.zip

I passaggi seguenti mostrano come creareplugins.zip. Il contenuto di questo esempio può essere combinato con altri plugin e binari in un unicoplugins.zipfascicolo.

  1. Nel prompt dei comandi, accedi ahive_plugincartella del passaggio precedente. Ad esempio:

    cd hive_plugin
  2. Comprimi i contenuti all'interno del tuopluginscartella.

    zip -r ../hive_plugin.zip ./

Esempio di codice

I passaggi seguenti descrivono come creare il codice DAG che testerà il plug-in personalizzato.

  1. Nel prompt dei comandi, accedi alla directory in cui è archiviato il codice DAG. Ad esempio:

    cd dags
  2. Copia il contenuto del seguente esempio di codice e salvalo localmente comehive.py.

    from airflow import DAG from airflow.operators.bash_operator import BashOperator from airflow.utils.dates import days_ago with DAG(dag_id="hive_test_dag", schedule_interval=None, catchup=False, start_date=days_ago(1)) as dag: hive_test = BashOperator( task_id="hive_test", bash_command='hive --help' )

Opzioni di configurazione del flusso d'aria

Se utilizzi Apache Airflow v2, aggiungicore.lazy_load_plugins : Falsecome opzione di configurazione di Apache Airflow. Per saperne di più, consultaUtilizzo delle opzioni di configurazione per caricare i plugin in 2.

Fasi successive