Criação de um plug-in personalizado com o Apache Hive e o Hadoop - Amazon Managed Workflows for Apache Airflow

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de um plug-in personalizado com o Apache Hive e o Hadoop

O Amazon MWAA extrai o conteúdo de um plugins.zip para /usr/local/airflow/plugins. Isso pode ser usado para adicionar binários aos seus contêineres. Além disso, o Apache Airflow executa o conteúdo dos arquivos Python na pasta plugins em inicialização, permitindo que você defina e modifique variáveis de ambiente. O exemplo a seguir mostra as etapas para criar um plug-in personalizado usando o Apache Hive e o Hadoop em um ambiente Amazon Managed Workflows for Apache Airflow e pode ser combinado com outros plug-ins e binários personalizados.

Versão

  • O código de amostra nesta página pode ser usado com o Apache Airflow v1 em Python 3.7.

  • Você pode usar o exemplo de código nesta página com o Apache Airflow v2 e superior no Python 3.10.

Pré-requisitos

Para usar o código de amostra nesta página, você precisará do seguinte:

Permissões

  • Nenhuma permissão adicional é necessária para usar o exemplo de código nesta página.

Requisitos

Para usar o código de exemplo nesta seção, adicione as seguintes dependências ao seu requirements.txt. Para saber mais, consulte Como instalar dependências do 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

Download de dependências

O Amazon MWAA extrairá o conteúdo do plugins.zip em /usr/local/airflow/plugins sobre cada contêiner de agendador e trabalho do Amazon MWAA. Isso é usado para adicionar binários ao seu ambiente. As etapas a seguir descrevem como montar os arquivos necessários para o plugin personalizado.

  1. No prompt de comando, navegue até o diretório em que você gostaria de criar seu plug-in. Por exemplo:

    cd plugins
  2. Baixe o Hadoop de um espelho, por exemplo:

    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
  3. Baixe o Hive de um espelho, por exemplo:

    wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
  4. Crie um diretório. Por exemplo:

    mkdir hive_plugin
  5. Extraia o Hadoop.

    tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
  6. Extraia o Hive.

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

Plug-in personalizado

O Apache Airflow executará o conteúdo dos arquivos Python na pasta de plugins na inicialização. Isto é usado para definir e modificar variáveis de ambiente. As seguintes etapas descrevem o código de exemplo para o plugin personalizado.

  1. Em um prompt de comando, navegue até o diretório hive_plugin. Por exemplo:

    cd hive_plugin
  2. Copie o conteúdo da amostra de código a seguir e salve localmente como hive_plugin.py no diretório 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. Copie o conteúdo do texto a seguir e salve localmente como .airflowignore no diretório hive_plugin.

    hadoop-3.3.0 apache-hive-3.1.2-bin

Plugins.zip

As etapas a seguir mostram como criar plugins.zip. O conteúdo deste exemplo pode ser combinado com outros plug-ins e binários em um único plugins.zip arquivo.

  1. Em sua prompt linha de comando, navegue até o diretório hive_plugin da etapa anterior. Por exemplo:

    cd hive_plugin
  2. Compacte o conteúdo em sua pasta plugins.

    zip -r ../hive_plugin.zip ./

Exemplo de código

As etapas a seguir descrevem como criar o código do DAG que testará o plugin personalizado.

  1. No prompt de comando, navegue até o diretório em que o código do DAG está armazenado. Por exemplo:

    cd dags
  2. Copie o conteúdo da amostra de código a seguir e salve localmente como 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' )

Opções de configuração do JEG

Se você estiver usando o Apache Airflow v2, adicione core.lazy_load_plugins : False como uma opção de configuração do Apache Airflow. Para saber mais, consulte Usando opções de configuração para carregar plug-ins em 2.

Próximas etapas