

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat plugin khusus dengan Apache Hive dan Hadoop
<a name="samples-hive"></a>

Amazon MWAA mengekstrak isi a `plugins.zip` to. `/usr/local/airflow/plugins` Ini dapat digunakan untuk menambahkan binari ke wadah Anda. Selain itu, Apache Airflow mengeksekusi isi file Python di folder *saat* startup —memungkinkan Anda untuk mengatur `plugins` dan memodifikasi variabel lingkungan. Contoh berikut memandu Anda melalui langkah-langkah untuk membuat plugin khusus menggunakan Apache Hive dan Hadoop di Amazon Managed Workflows untuk lingkungan Apache Airflow dan dapat dikombinasikan dengan plugin dan binari khusus lainnya.

**Topics**
+ [Versi](#samples-hive-version)
+ [Prasyarat](#samples-hive-prereqs)
+ [Izin](#samples-hive-permissions)
+ [Persyaratan](#samples-hive-dependencies)
+ [Unduh dependensi](#samples-hive-install)
+ [*Plugin*Khusus](#samples-hive-plugins-code)
+ [Plugins.zip](#samples-hive-pluginszip)
+ [Contoh kode](#samples-hive-code)
+ [Opsi konfigurasi Airflow](#samples-hive-airflow-config)
+ [Apa selanjutnya?](#samples-hive-next-up)

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

**[Anda dapat menggunakan contoh kode pada halaman ini dengan **Apache Airflow v2 di Python 3.10 dan Apache Airflow**[v3 di Python 3.11](https://peps.python.org/pep-0619/).](https://peps.python.org/pep-0664/)**

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

Untuk menggunakan kode sampel di halaman ini, Anda memerlukan yang berikut:
+ Lingkungan [Amazon MWAA.](get-started.md)

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

Tidak diperlukan izin tambahan untuk menggunakan contoh kode di halaman ini.

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

Untuk menggunakan kode contoh pada halaman ini, tambahkan dependensi berikut ke Anda. `requirements.txt` Untuk mempelajari lebih lanjut, lihat[Menginstal dependensi 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]
```

## Unduh dependensi
<a name="samples-hive-install"></a>

Amazon MWAA akan mengekstrak konten plugins.zip ke dalam setiap penjadwal `/usr/local/airflow/plugins` Amazon MWAA dan wadah pekerja. Ini digunakan untuk menambahkan binari ke lingkungan Anda. Langkah-langkah berikut menjelaskan cara merakit file yang diperlukan untuk plugin kustom.

1. Di command prompt Anda, navigasikan ke direktori tempat Anda ingin membuat plugin Anda. Misalnya:

   ```
   cd plugins
   ```

1. Unduh [Hadoop](https://hadoop.apache.org/) dari [cermin](https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz), misalnya:

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

1. Unduh [Hive](https://hive.apache.org/) dari [cermin](https://www.apache.org/dyn/closer.cgi/hive/), misalnya:

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

1. Buatlah sebuah direktori. Misalnya:

   ```
   mkdir hive_plugin
   ```

1. Ekstrak Hadoop.

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

1. Ekstrak Sarang.

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

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

Apache Airflow akan mengeksekusi isi file Python di folder plugin saat startup. Ini digunakan untuk mengatur dan memodifikasi variabel lingkungan. Langkah-langkah berikut menjelaskan kode sampel untuk plugin kustom.

1. Di prompt perintah Anda, arahkan ke `hive_plugin` direktori. Misalnya:

   ```
   cd hive_plugin
   ```

1. Salin isi contoh kode berikut dan simpan secara lokal seperti `hive_plugin.py` di `hive_plugin` direktori.

   ```
   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. Atasi konten teks berikut dan simpan secara lokal seperti `.airflowignore` di `hive_plugin` direktori.

   ```
   hadoop-3.3.0
   apache-hive-3.1.2-bin
   ```

## Plugins.zip
<a name="samples-hive-pluginszip"></a>

Langkah-langkah berikut menjelaskan cara membuat`plugins.zip`. Isi contoh ini dapat dikombinasikan dengan plugin dan binari lain menjadi satu `plugins.zip` file.

1. Di prompt perintah Anda, arahkan ke `hive_plugin` direktori dari langkah sebelumnya. Misalnya:

   ```
   cd hive_plugin
   ```

1. Zip konten di dalam `plugins` folder Anda.

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

## Contoh kode
<a name="samples-hive-code"></a>

Langkah-langkah berikut menjelaskan cara membuat kode DAG yang akan menguji plugin kustom.

1. Di prompt perintah Anda, arahkan ke direktori tempat kode DAG Anda disimpan. Misalnya:

   ```
   cd dags
   ```

1. Salin isi contoh kode berikut dan simpan secara lokal sebagai`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'
       )
   ```

## Opsi konfigurasi Airflow
<a name="samples-hive-airflow-config"></a>

Jika Anda menggunakan Apache Airflow v2, `core.lazy_load_plugins : False` tambahkan sebagai opsi konfigurasi Apache Airflow. Untuk mempelajari lebih lanjut, lihat [Menggunakan opsi konfigurasi untuk memuat plugin di 2](configuring-env-variables.md#configuring-2.0-airflow-override).

## Apa selanjutnya?
<a name="samples-hive-next-up"></a>
+ Pelajari cara mengunggah `requirements.txt` file dalam contoh ini ke bucket Amazon S3 Anda. [Menginstal dependensi Python](working-dags-dependencies.md)
+ Pelajari cara mengunggah kode DAG dalam contoh ini ke `dags` folder di bucket Amazon S3 Anda. [Menambahkan atau memperbarui DAGs](configuring-dag-folder.md)
+ Pelajari lebih lanjut cara mengunggah `plugins.zip` file dalam contoh ini ke bucket Amazon S3 Anda. [Menginstal plugin kustom](configuring-dag-import-plugins.md)