web-dev-qa-db-ja.com

SparkジョブをAirflowからEMRクラスターに送信する方法は?

EMRマスタークラスター(Terraformによって作成)とAirflow間の接続を確立するにはどうすればよいですか?同じSG、VPC、サブネットを持つAWS EC2サーバーでAirflowを設定しています。

AirflowがEMRと通信してSpark submitを実行できるようにするためのソリューションが必要です。

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

これらのブログは、接続が確立された後の実行について理解しています。(あまり役に立たなかった)

エアフローでは、AWSとEMRのUIを使用して接続しました:-

enter image description here

以下は、アクティブで終了するEMRクラスターをリストするコードです。アクティブクラスターを取得するように微調整することもできます。

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’])

私の質問は-上記のコードを更新してSpark-submitアクションを実行するにはどうすればよいですか

5
Kally

Terraformを使用してEMRを作成すると、マスターIPはaws_emr_cluster.my-emr.master_public_dnsとして取得されます

お役に立てれば。

0
pradeep