

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
<a name="samples-hive"></a>

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.

**Topics**
+ [Versione](#samples-hive-version)
+ [Prerequisiti](#samples-hive-prereqs)
+ [Autorizzazioni](#samples-hive-permissions)
+ [Requisiti](#samples-hive-dependencies)
+ [Scarica le dipendenze](#samples-hive-install)
+ [Plugin personalizzato](#samples-hive-plugins-code)
+ [Plugins.zip](#samples-hive-pluginszip)
+ [Esempio di codice](#samples-hive-code)
+ [Opzioni di configurazione di Airflow](#samples-hive-airflow-config)
+ [Fasi successive](#samples-hive-next-up)

## Versione
<a name="samples-hive-version"></a>

**[È possibile utilizzare l'esempio di codice in questa pagina con **Apache Airflow v2 in Python 3.10 e Apache Airflow v3**[in Python 3.11](https://peps.python.org/pep-0619/).](https://peps.python.org/pep-0664/)**

## Prerequisiti
<a name="samples-hive-prereqs"></a>

Per utilizzare il codice di esempio in questa pagina, avrai bisogno di quanto segue:
+ Un ambiente [Amazon MWAA](get-started.md).

## Autorizzazioni
<a name="samples-hive-permissions"></a>

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

## Requisiti
<a name="samples-hive-dependencies"></a>

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](working-dags-dependencies.md)

```
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt
apache-airflow-providers-amazon[apache.hive]
```

## Scarica le dipendenze
<a name="samples-hive-install"></a>

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. Ad esempio:

   ```
   cd plugins
   ```

1. Scarica [Hadoop](https://hadoop.apache.org/) da un [mirror](https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz), ad esempio:

   ```
   wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
   ```

1. Scarica [Hive](https://hive.apache.org/) da un [mirror](https://www.apache.org/dyn/closer.cgi/hive/), ad esempio:

   ```
   wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
   ```

1. Crea una directory. Ad esempio:

   ```
   mkdir hive_plugin
   ```

1. Estrai Hadoop.

   ```
   tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
   ```

1. Estrai Hive.

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

## Plugin personalizzato
<a name="samples-hive-plugins-code"></a>

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. Ad esempio:

   ```
   cd hive_plugin
   ```

1. 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'
   ```

1. 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
<a name="samples-hive-pluginszip"></a>

I passaggi seguenti spiegano come creare`plugins.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. Ad esempio:

   ```
   cd hive_plugin
   ```

1. Comprimi il contenuto all'interno della `plugins` cartella.

   ```
   zip -r ../hive_plugin.zip ./
   ```

## Esempio di codice
<a name="samples-hive-code"></a>

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. Ad esempio:

   ```
   cd dags
   ```

1. 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 di Airflow
<a name="samples-hive-airflow-config"></a>

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](configuring-env-variables.md#configuring-2.0-airflow-override) 2.

## Fasi successive
<a name="samples-hive-next-up"></a>
+ Scopri come caricare il `requirements.txt` file in questo esempio nel tuo bucket Amazon S3 in. [Installazione delle dipendenze in Python](working-dags-dependencies.md)
+ Scopri come caricare il codice DAG in questo esempio nella `dags` cartella del tuo bucket Amazon S3 in. [Aggiungere o aggiornare DAGs](configuring-dag-folder.md)
+ Scopri di più su come caricare il `plugins.zip` file in questo esempio nel tuo bucket Amazon S3 in. [Installazione di plugin personalizzati](configuring-dag-import-plugins.md)