Membuat plugin khusus dengan Apache Hive dan Hadoop - Amazon Managed Workflows for Apache Airflow (MWAA)

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 plugins folder saat startup — memungkinkan Anda untuk mengatur dan memodifikasi variabel lingkungan. Contoh berikut memandu Anda melalui langkah-langkah untuk membuat plugin khusus menggunakan Apache Hive dan Hadoop pada Alur Kerja Terkelola Amazon untuk lingkungan Apache Airflow dan dapat dikombinasikan dengan plugin dan binari khusus lainnya.

Versi

Prasyarat

Untuk menggunakan kode sampel di halaman ini, Anda memerlukan yang berikut:

Izin

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

Persyaratan

Untuk menggunakan kode sampel pada halaman ini, tambahkan dependensi berikut ke Anda. requirements.txt Untuk mempelajari selengkapnya, lihat Menginstal dependensi Python.

Apache Airflow v2
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]
Apache Airflow v1
apache-airflow[hive]==1.10.12

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.

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

    cd plugins
  2. Unduh Hadoop dari cermin, misalnya:

    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. Unduh Hive dari cermin, misalnya:

    wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  4. Buatlah sebuah direktori. Sebagai contoh:

    mkdir hive_plugin
  5. Ekstrak Hadoop.

    tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
  6. Ekstrak Sarang.

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

Plugin kustom

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. Sebagai contoh:

    cd hive_plugin
  2. 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'
  3. 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

Langkah-langkah berikut menunjukkan cara membuatplugins.zip. Isi contoh ini dapat dikombinasikan dengan plugin dan binari lain ke dalam satu plugins.zip file.

  1. Di prompt perintah Anda, arahkan ke hive_plugin direktori dari langkah sebelumnya. Sebagai contoh:

    cd hive_plugin
  2. Zip konten di dalam plugins folder Anda.

    zip -r ../hive_plugin.zip ./

Contoh kode

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. Sebagai contoh:

    cd dags
  2. Salin isi contoh kode berikut dan simpan secara lokal sebagaihive.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 aliran udara

Jika Anda menggunakan Apache Airflow v2, tambahkan core.lazy_load_plugins : False sebagai opsi konfigurasi Apache Airflow. Untuk mempelajari lebih lanjut, lihat Menggunakan opsi konfigurasi untuk memuat plugin di 2.

Apa selanjutnya?