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 un to. plugins.zip /usr/local/airflow/plugins Questo può essere usato per aggiungere file binari ai contenitori. Inoltre, Apache Airflow esegue il contenuto dei file Python nella plugins cartella all'avvio, consentendoti 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 in un ambiente Amazon Managed Workflows for Apache Airflow e può essere combinato con altri plug-in e binari personalizzati.

Versione

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 tuo. requirements.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/plugins ogni container di scheduler e worker Amazon MWAA. Viene utilizzato per aggiungere file binari al tuo ambiente. I passaggi seguenti descrivono come assemblare i file necessari per il plug-in personalizzato.

  1. Nel prompt dei comandi, accedete alla directory in cui desiderate creare il plugin. Per esempio:

    cd plugins
  2. Scarica Hadoop da un mirror, ad esempio:

    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. Scarica Hive da un mirror, ad esempio:

    wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  4. Crea una directory. Per 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 plugins 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 alla hive_plugin directory. Per esempio:

    cd hive_plugin
  2. Copiate il contenuto del seguente esempio di codice e salvatelo localmente come hive_plugin.py nella hive_plugin directory.

    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 testo seguente e salvalo localmente come .airflowignore nella hive_plugin directory.

    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 unico plugins.zip file.

  1. Nel prompt dei comandi, accedete alla hive_plugin directory del passaggio precedente. Per esempio:

    cd hive_plugin
  2. Comprimi il contenuto all'interno della plugins cartella.

    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, accedete alla directory in cui è memorizzato il codice DAG. Per esempio:

    cd dags
  2. Copia il contenuto del seguente esempio di codice e salvalo localmente come. hive.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, aggiungilo core.lazy_load_plugins : False come opzione di configurazione Apache Airflow. Per saperne di più, consulta Usare le opzioni di configurazione per caricare i plugin in 2.

Fasi successive