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.zip
a/usr/local/airflow/plugins
. Questo può essere usato per aggiungere binari ai tuoi contenitori. Inoltre, Apache Airflow esegue il contenuto dei file Python inplugins
cartella 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.
Argomenti
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.
Scarica le dipendenze
Amazon MWAA estrarrà il contenuto di plugins.zip in/usr/local/airflow/plugins
su 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.
-
Nel prompt dei comandi, vai alla directory in cui desideri creare il tuo plugin. Ad esempio:
cd plugins
-
ScaricaHadoop
da unspecchio , ad esempio: wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
-
ScaricaAlveare
da unspecchio , 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 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.
-
Nel prompt dei comandi, accedi a
hive_plugin
rubrica. Ad esempio:cd hive_plugin
-
Copia il contenuto del seguente esempio di codice e salvalo localmente come
hive_plugin.py
nelhive_plugin
rubrica.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 seguente testo e salvalo localmente come
.airflowignore
nelhive_plugin
rubrica.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.zip
fascicolo.
-
Nel prompt dei comandi, accedi a
hive_plugin
cartella del passaggio precedente. Ad esempio:cd hive_plugin
-
Comprimi i contenuti all'interno del tuo
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.
-
Nel prompt dei comandi, accedi alla directory in cui è archiviato il codice DAG. Ad esempio:
cd dags
-
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, aggiungicore.lazy_load_plugins : False
come opzione di configurazione di Apache Airflow. Per saperne di più, consultaUtilizzo delle opzioni di configurazione per caricare i plugin in 2.
Fasi successive
-
Scopri come caricare
requirements.txt
inserisci questo esempio nel tuo bucket Amazon S3Installazione delle dipendenze in Python. -
Scopri come caricare il codice DAG in questo esempio su
dags
cartella nel tuo bucket Amazon S3 inAggiunta o aggiornamento di DAG. -
Scopri di più su come caricare
plugins.zip
inserisci questo esempio nel tuo bucket Amazon S3Installazione di plugin personalizzati.