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
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.
Topik
Versi
Anda dapat menggunakan contoh kode pada halaman ini dengan Apache Airflow v2 di Python 3.10 dan Apache Airflowv3 di Python 3.11
Prasyarat
Untuk menggunakan kode sampel di halaman ini, Anda memerlukan yang berikut:
-
Lingkungan Amazon MWAA.
Izin
Tidak diperlukan izin tambahan untuk menggunakan contoh kode di halaman ini.
Persyaratan
Untuk menggunakan kode contoh pada halaman ini, tambahkan dependensi berikut ke Anda. requirements.txt Untuk mempelajari lebih lanjut, lihatMenginstal dependensi Python.
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]
Unduh dependensi
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.
-
Di command prompt Anda, navigasikan ke direktori tempat Anda ingin membuat plugin Anda. Misalnya:
cd plugins -
Unduh Hadoop
dari cermin , misalnya: wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz -
Unduh Hive
dari cermin , misalnya: wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz -
Buatlah sebuah direktori. Misalnya:
mkdir hive_plugin -
Ekstrak Hadoop.
tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin -
Ekstrak Sarang.
tar -xvzf apache-hive-3.1.2-bin.tar.gz -C hive_plugin
Plugin Khusus
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.
-
Di prompt perintah Anda, arahkan ke
hive_plugindirektori. Misalnya:cd hive_plugin -
Salin isi contoh kode berikut dan simpan secara lokal seperti
hive_plugin.pydihive_plugindirektori.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' -
Atasi konten teks berikut dan simpan secara lokal seperti
.airflowignoredihive_plugindirektori.hadoop-3.3.0 apache-hive-3.1.2-bin
Plugins.zip
Langkah-langkah berikut menjelaskan cara membuatplugins.zip. Isi contoh ini dapat dikombinasikan dengan plugin dan binari lain menjadi satu plugins.zip file.
-
Di prompt perintah Anda, arahkan ke
hive_plugindirektori dari langkah sebelumnya. Misalnya:cd hive_plugin -
Zip konten di dalam
pluginsfolder Anda.zip -r ../hive_plugin.zip ./
Contoh kode
Langkah-langkah berikut menjelaskan cara membuat kode DAG yang akan menguji plugin kustom.
-
Di prompt perintah Anda, arahkan ke direktori tempat kode DAG Anda disimpan. Misalnya:
cd dags -
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
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.
Apa selanjutnya?
-
Pelajari cara mengunggah
requirements.txtfile dalam contoh ini ke bucket Amazon S3 Anda. Menginstal dependensi Python -
Pelajari cara mengunggah kode DAG dalam contoh ini ke
dagsfolder di bucket Amazon S3 Anda. Menambahkan atau memperbarui DAGs -
Pelajari lebih lanjut cara mengunggah
plugins.zipfile dalam contoh ini ke bucket Amazon S3 Anda. Menginstal plugin kustom