選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Apache Hive 和 Hadoop 建立自訂外掛程式

焦點模式
使用 Apache Hive 和 Hadoop 建立自訂外掛程式 - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon MWAA 會將 的內容擷取plugins.zip/usr/local/airflow/plugins。這可用於將二進位檔新增至您的容器。此外,Apache Airflow 會在啟動時執行plugins資料夾中 Python 檔案的內容,讓您設定和修改環境變數。下列範例會逐步引導您建立自訂外掛程式的步驟,這些外掛程式在 Amazon Managed Workflows for Apache Airflow 環境上使用 Apache Hive 和 Hadoop,並且可以與其他自訂外掛程式和二進位檔結合。

版本

  • 您可以在 Python 3.10 中使用此頁面上的程式碼範例搭配 Apache Airflow v2

先決條件

若要使用此頁面上的範例程式碼,您需要下列項目:

許可

  • 使用此頁面上的程式碼範例不需要額外的許可。

要求

若要使用此頁面上的範例程式碼,請將下列相依性新增至您的 requirements.txt。如需進一步了解,請參閱 安裝 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
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt apache-airflow-providers-amazon[apache.hive]

下載相依性

Amazon MWAA 會在每個 Amazon MWAA 排程器和工作者容器/usr/local/airflow/plugins上擷取 plugins.zip 的內容。這用於將二進位檔新增至您的環境。下列步驟說明如何組合自訂外掛程式所需的檔案。

  1. 在命令提示中,導覽至您要建立外掛程式的目錄。例如:

    cd plugins
  2. 鏡像下載 Hadoop,例如:

    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. 鏡像下載 Hive,例如:

    wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  4. 建立目錄。例如:

    mkdir hive_plugin
  5. 擷取 Hadoop。

    tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
  6. 擷取 Hive。

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

自訂外掛程式

Apache Airflow 會在啟動時執行外掛程式資料夾中 Python 檔案的內容。這用於設定和修改環境變數。下列步驟說明自訂外掛程式的範例程式碼。

  1. 在命令提示中,導覽至 hive_plugin 目錄。例如:

    cd hive_plugin
  2. 複製下列程式碼範例的內容,並在本機儲存為 hive_plugin.py hive_plugin目錄中的 。

    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. 處理下列文字的內容,並在本機儲存為 .airflowignore hive_plugin目錄中的 。

    hadoop-3.3.0 apache-hive-3.1.2-bin

Plugins.zip

下列步驟說明如何建立 plugins.zip。此範例的內容可以與其他外掛程式和二進位檔合併為單一plugins.zip檔案。

  1. 在命令提示中,導覽至上一個步驟的hive_plugin目錄。例如:

    cd hive_plugin
  2. 壓縮plugins資料夾中的內容。

    zip -r ../hive_plugin.zip ./

範例程式碼

下列步驟說明如何建立 DAG 程式碼來測試自訂外掛程式。

  1. 在命令提示中,導覽至存放 DAG 程式碼的目錄。例如:

    cd dags
  2. 複製下列程式碼範例的內容,並在本機儲存為 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' )

氣流組態選項

如果您使用的是 Apache Airflow v2,請將 新增core.lazy_load_plugins : False為 Apache Airflow 組態選項。若要進一步了解,請參閱使用組態選項載入 2 中的外掛程式

後續步驟?

  • 了解如何在此範例中將 requirements.txt 檔案上傳至 中的 Amazon S3 儲存貯體安裝 Python 相依性

  • 了解如何在此範例中將 DAG 程式碼上傳至 Amazon S3 儲存貯體中的 dags 資料夾新增或更新 DAGs

  • 進一步了解如何在此範例中將plugins.zip檔案上傳至 中的 Amazon S3 儲存貯體安裝自訂外掛程式

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。