web-dev-qa-db-fra.com

Comment soumettre des travaux Spark au cluster EMR à partir d'Airflow?

Comment puis-je établir une connexion entre le cluster maître EMR (créé par Terraform) et Airflow. J'ai la configuration d'Airflow sous le serveur AWS EC2 avec les mêmes SG, VPC et sous-réseau.

J'ai besoin de solutions pour qu'Airflow puisse parler à EMR et exécuter Spark submit.

https://aws.Amazon.com/blogs/big-data/build-a-concurrent-data-orchestration-pipeline-using-Amazon-emr-and-Apache-livy/

Ces blogs ont une compréhension de l'exécution après l'établissement de la connexion (n'a pas beaucoup aidé).

Dans le flux d'air, j'ai établi une connexion en utilisant l'interface utilisateur pour AWS et EMR: -

enter image description here

Ci-dessous le code qui listera les clusters EMR qui sont actifs et terminés, je peux également affiner pour obtenir des clusters actifs: -

from airflow.contrib.hooks.aws_hook import AwsHook
import boto3
hook = AwsHook(aws_conn_id=‘aws_default’)
    client = hook.get_client_type(‘emr’, ‘eu-central-1’)
    for x in a:
        print(x[‘Status’][‘State’],x[‘Name’])

Ma question est - Comment puis-je mettre à jour mon code ci-dessus peut faire des actions Spark-submit

5
Kally

Comme vous avez créé EMR à l'aide de Terraform, vous obtenez l'IP maître sous la forme aws_emr_cluster.my-emr.master_public_dns

J'espère que cela t'aides.

0
pradeep