python 使用Wordcount作业创建EMR群集作为Boto3中的步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用Wordcount作业创建EMR群集作为Boto3中的步骤相关的知识,希望对你有一定的参考价值。

import boto3

client = boto3.client(
    'emr',
    region_name='eu-west-1'
)

cmd = "hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount file:///etc/services /output"

emrcluster = client.run_job_flow(
    Name='EMR Cluster with Boto',
    LogUri='s3://<bucket>/logs/',
    ReleaseLabel='emr-5.3.0',
    Instances={
        'InstanceGroups': [
            {
                'Name': "Master nodes",
                'Market': 'ON_DEMAND',
                'InstanceRole': 'MASTER',
                'InstanceType': 'm1.medium',
                'InstanceCount': 1,
            },
            {
                'Name': "Slave nodes",
                'Market': 'ON_DEMAND',
                'InstanceRole': 'CORE',
                'InstanceType': 'm1.medium',
                'InstanceCount': 2,
            }
        ],
        'Ec2KeyName': '<keyname>',
        'KeepJobFlowAliveWhenNoSteps': True,
        'TerminationProtected': False,
        'Ec2SubnetId': 'subnet-<id>',
    },
    Steps=[
        {
         'Name': 'Wordcount Job',
         'HadoopJarStep': {
             'Jar': 'command-runner.jar',
             'Args': cmd.split()
             }
        }
    ],
    VisibleToAllUsers=True,
    JobFlowRole='EMR_EC2_DefaultRole',
    ServiceRole='EMR_DefaultRole',
    Tags=[
        {
            'Key': 'Name',
            'Value': 'EMR with Boto',
        },
        {
            'Key': 'TerminationVal',
            'Value': 'OK',
        },
    ],
)

print(
    'ClusterID: {} , DateCreated: {} , RequestId: {}'
    .format(
        emrcluster['JobFlowId'], 
        emrcluster['ResponseMetadata']['HTTPHeaders']['date'], 
        emrcluster['ResponseMetadata']['RequestId']
        )
    )

以上是关于python 使用Wordcount作业创建EMR群集作为Boto3中的步骤的主要内容,如果未能解决你的问题,请参考以下文章

MapReduce 作业(用 python 编写)在 EMR 上运行缓慢

EMR Hadoop Pig 作业错误“创建作业配置内部错误”

如何将 EMR 流作业的输出写入 HDFS?

如何在 Amazon EMR 集群上远程提交 hadoop MR 作业

您如何使用 boto3(或其他方式)在 emr 上自动化 pyspark 作业?

使用 python MRJob 在 EMR 上引导库