2

Python boto ライブラリを使用して AWS ラムダ関数を記述して EMR クラスターを作成しようとしています。ただし、クラスターを作成することはできますが、「テーブル メタデータ用の AWS Glue データ カタログ」を使用して、spark を使用して直接読み取ることができるようにしたいと考えています。 AWS ユーザー インターフェイスを使用して EMR クラスターを作成している間、通常、目的を解決するチェックボックス (「テーブル メタデータに AWS Glue データ カタログを使用する」) をオンにします。 boto ライブラリでも同じです。

以下は、EMR クラスターを作成するために使用している Python コードです。

    try:
        connection = boto3.client(
            'emr',
            region_name='xxx'
        )
        cluster_id = connection.run_job_flow(
            Name='EMR-LogProcessing',
            LogUri='s3://somepath/',
            ReleaseLabel='emr-5.21.0',
            Applications=[
                {
                    'Name': 'Spark'
                },
            ],
            Instances={
                'InstanceGroups': [
                    {
                        'Name': "MasterNode",
                        'Market': 'SPOT',
                        'InstanceRole': 'MASTER',
                        'BidPrice': 'xxx',
                        'InstanceType': 'm3.xlarge',
                        'InstanceCount': 1,
                    },
                    {
                        'Name': "SlaveNode",
                        'Market': 'SPOT',
                        'InstanceRole': 'CORE',
                        'BidPrice': 'xxx',
                        'InstanceType': 'm3.xlarge',
                        'InstanceCount': 2,
                    }
                ],
                'Ec2KeyName': 'xxx',
                'KeepJobFlowAliveWhenNoSteps': True,
                'TerminationProtected': False
            },
            VisibleToAllUsers=True,
            JobFlowRole='EMR_EC2_DefaultRole',
            ServiceRole='EMR_DefaultRole',
            Tags=[
                {
                    'Key': 'Name',
                    'Value': 'EMR-LogProcessing',
                },
                {
                    'Key': 'env',
                    'Value': 'dev',
                },
            ],
        )

        print('cluster created with the step...', cluster_id['JobFlowId'])
    except Exception as exp:
        logger.info("Exception Occured in createEMRcluster!!! %s", str(exp))

どうすればそれを達成できるのか、手がかりが見つかりません。助けてください。

4

1 に答える 1