Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un plugin personnalisé avec Apache Hive et Hadoop
Amazon MWAA extrait le contenu d'un plugins.zip
à/usr/local/airflow/plugins
. Cela peut être utilisé pour ajouter des fichiers binaires à vos conteneurs. En outre, Apache Airflow exécute le contenu des fichiers Python contenus dans le plugins
dossier au démarrage, ce qui vous permet de définir et de modifier des variables d'environnement. L'exemple suivant explique les étapes de création d'un plugin personnalisé à l'aide d'Apache Hive et Hadoop dans un environnement Amazon Managed Workflows for Apache Airflow et peut être combiné avec d'autres plugins et binaires personnalisés.
Rubriques
Version
Vous pouvez utiliser l'exemple de code présenté sur cette page avec Apache Airflow v2 en Python 3.10
Prérequis
Pour utiliser l'exemple de code présenté sur cette page, vous aurez besoin des éléments suivants :
Autorisations
Aucune autorisation supplémentaire n'est requise pour utiliser l'exemple de code présenté sur cette page.
Prérequis
Pour utiliser l'exemple de code de cette page, ajoutez les dépendances suivantes à votrerequirements.txt
. Pour en savoir plus, reportez-vous àInstallation des dépendances Python.
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]
Dépendances de téléchargement
Amazon MWAA extraira le contenu du fichier plugins.zip dans /usr/local/airflow/plugins
chaque planificateur et conteneur de travail Amazon MWAA. Ceci est utilisé pour ajouter des fichiers binaires à votre environnement. Les étapes suivantes décrivent comment assembler les fichiers nécessaires au plugin personnalisé.
-
Dans votre invite de commande, accédez au répertoire dans lequel vous souhaitez créer votre plugin. Exemples :
cd plugins
-
Téléchargez Hadoop
depuis un miroir , par exemple : wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
-
Téléchargez Hive
depuis un miroir , par exemple : wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
-
Créez un répertoire. Exemples :
mkdir hive_plugin
-
Extrayez Hadoop.
tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
-
Extrayez Hive.
tar -xvzf apache-hive-3.1.2-bin.tar.gz -C hive_plugin
Plug-in personnalisé
Apache Airflow exécutera le contenu des fichiers Python dans le dossier des plugins au démarrage. Ceci est utilisé pour définir et modifier les variables d'environnement. Les étapes suivantes décrivent l'exemple de code du plugin personnalisé.
-
Dans votre invite de commande, accédez au
hive_plugin
répertoire. Exemples :cd hive_plugin
-
Copiez le contenu de l'exemple de code suivant et enregistrez-le localement
hive_plugin.py
dans lehive_plugin
répertoire.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'
-
Copiez le contenu du texte suivant et enregistrez-le localement
.airflowignore
dans lehive_plugin
répertoire.hadoop-3.3.0 apache-hive-3.1.2-bin
Plugins.zip
Les étapes suivantes expliquent comment créerplugins.zip
. Le contenu de cet exemple peut être combiné avec d'autres plugins et binaires dans un seul plugins.zip
fichier.
-
Dans votre invite de commande, accédez au
hive_plugin
répertoire de l'étape précédente. Exemples :cd hive_plugin
-
Compressez le contenu de votre
plugins
dossier.zip -r ../hive_plugin.zip ./
Exemple de code
Les étapes suivantes décrivent comment créer le code DAG qui testera le plugin personnalisé.
-
Dans votre invite de commande, accédez au répertoire dans lequel votre code DAG est stocké. Exemples :
cd dags
-
Copiez le contenu de l'exemple de code suivant et enregistrez-le localement sous
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' )
Options de configuration d'Airflow
Si vous utilisez Apache Airflow v2, ajoutez-le en core.lazy_load_plugins : False
tant qu'option de configuration d'Apache Airflow. Pour en savoir plus, reportez-vous à la section Utilisation des options de configuration pour charger des plug-ins en 2.
Quelle est la prochaine étape ?
-
Découvrez comment charger le
requirements.txt
fichier dans cet exemple dans votre compartiment Amazon S3 dansInstallation des dépendances Python. -
Découvrez comment télécharger le code DAG dans cet exemple dans le
dags
dossier de votre compartiment Amazon S3 dansAjouter ou mettre à jour DAGs. -
Découvrez comment charger le
plugins.zip
fichier dans cet exemple dans votre compartiment Amazon S3 dansInstallation de plugins personnalisés.