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 cartella all'avvio, consentendoti di impostare e modificare plugins 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.
Argomenti
Versione
È possibile utilizzare l'esempio di codice in questa pagina con Apache Airflow v2 in Python 3.10 e Apache Airflow v3in Python 3.11
Prerequisiti
Per utilizzare il codice di esempio in questa pagina, avrai bisogno di quanto segue:
-
Un ambiente Amazon MWAA.
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, fare riferimento a. Installazione delle dipendenze in Python
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]
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.
-
Nel prompt dei comandi, accedete alla directory in cui desiderate creare il plugin. Ad esempio:
cd plugins -
Scarica Hadoop
da un mirror , ad esempio: wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz -
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 -
Crea una directory. Ad esempio:
mkdir hive_plugin -
Estrai Hadoop.
tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin -
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.
-
Nel prompt dei comandi, accedi alla
hive_plugindirectory. Ad esempio:cd hive_plugin -
Copiate il contenuto del seguente esempio di codice e salvatelo localmente come
hive_plugin.pynellahive_plugindirectory.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' -
Copia il contenuto del testo seguente e salvalo localmente come
.airflowignorenellahive_plugindirectory.hadoop-3.3.0 apache-hive-3.1.2-bin
Plugins.zip
I passaggi seguenti spiegano come creareplugins.zip. Il contenuto di questo esempio può essere combinato con altri plugin e binari in un unico plugins.zip file.
-
Nel prompt dei comandi, accedete alla
hive_plugindirectory del passaggio precedente. Ad esempio:cd hive_plugin -
Comprimi il contenuto all'interno della
pluginscartella.zip -r ../hive_plugin.zip ./
Esempio di codice
I passaggi seguenti descrivono come creare il codice DAG che testerà il plug-in personalizzato.
-
Nel prompt dei comandi, accedete alla directory in cui è memorizzato il codice DAG. Ad esempio:
cd dags -
Copia il contenuto del seguente esempio di codice e salvalo localmente come.
hive.pyfrom 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 di Airflow
Se utilizzi Apache Airflow v2, core.lazy_load_plugins : False aggiungilo come opzione di configurazione Apache Airflow. Per ulteriori informazioni, consulta Usare le opzioni di configurazione per caricare i plugin in 2.
Fasi successive
-
Scopri come caricare il
requirements.txtfile in questo esempio nel tuo bucket Amazon S3 in. Installazione delle dipendenze in Python -
Scopri come caricare il codice DAG in questo esempio nella
dagscartella del tuo bucket Amazon S3 in. Aggiungere o aggiornare DAGs -
Scopri di più su come caricare il
plugins.zipfile in questo esempio nel tuo bucket Amazon S3 in. Installazione di plugin personalizzati