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á.
Como criar 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.
Tópicos
Versão
-
O código de amostra nesta página pode ser usado com o Apache Airflow v1 em Python 3.7
.
-
É possível usar o exemplo de código nesta página com o Apache Airflow v2 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 amostra nesta página, adicione as seguintes dependências ao seu requirements.txt
. Para saber mais, consulte Como instalar dependências do Python.
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.
-
No prompt de comando, navegue até o diretório em que você gostaria de criar seu plug-in. Por exemplo:
cd plugins
-
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
-
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
-
Crie um diretório. Por exemplo:
mkdir hive_plugin
-
Extraia o Hadoop.
tar -xvzf hadoop-3.3.0.tar.gz -C hive_plugin
-
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.
-
Em um prompt de comando, navegue até o diretório
hive_plugin
. Por exemplo:cd hive_plugin
-
Copie o conteúdo da amostra de código a seguir e salve localmente como
hive_plugin.py
no diretóriohive_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'
-
Copie o conteúdo do texto a seguir e salve localmente como
.airflowignore
no diretóriohive_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 arquivo plugins.zip
.
-
Em sua prompt linha de comando, navegue até o diretório
hive_plugin
da etapa anterior. Por exemplo:cd hive_plugin
-
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.
-
No prompt de comando, navegue até o diretório em que o código do DAG está armazenado. Por exemplo:
cd dags
-
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 Airflow
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 Usar opções de configuração para carregar plug-ins em 2.
Próximas etapas
-
Saiba como fazer o upload do
requirements.txt
arquivo neste exemplo para seu bucket do Amazon S3 em Como instalar dependências do Python. -
Saiba como fazer o upload do código DAG neste exemplo para a pasta
dags
em seu bucket do Amazon S3 em Adicionando ou atualizando DAGs. -
Saiba mais sobre como fazer o upload do
plugins.zip
arquivo neste exemplo para seu bucket do Amazon S3 em Como instalar plug-ins personalizados.