首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boto3电子病历-蜂巢步骤

Boto3电子病历-蜂巢步骤
EN

Stack Overflow用户
提问于 2015-09-05 06:47:25
回答 2查看 4.3K关注 0票数 7

使用boto 3可以执行蜂巢步骤吗?我一直在使用AWS,但从docs (steps)来看,似乎只有jars被接受。如果蜂巢步骤是可能的,那么资源在哪里?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-10 12:59:07

在以前版本的Boto中,有一个名为HiveStep的助手类,它使构造用于执行Hive作业的作业流步骤变得容易。然而,在Boto3中,方法已经改变,类是在运行时从API生成的。因此,不存在这样的助手类。查看HiveStep的源代码https://github.com/boto/boto/blob/2d7796a625f9596cbadb7d00c0198e5ed84631ed/boto/emr/step.py,可以看到这是Step的一个子类,它是一个具有属性jar argsmainclass的类,非常类似于Boto3中的请求。

事实证明,EMR上的所有作业流程步骤,包括Hive步骤,仍然需要从JAR中实例化。因此,您可以通过Boto3执行Hive步骤,但是没有帮助器类可以轻松地构造定义。

通过查看HiveStep在以前版本Boto中使用的方法,您可以构造一个有效的作业流定义。

或者,您可以回到使用以前版本的Boto。

票数 3
EN

Stack Overflow用户

发布于 2016-05-18 20:25:06

我能够使用Boto3来完成这个任务:

代码语言:javascript
复制
# First create your hive command line arguments
hive_args = "hive -v -f s3://user/hadoop/hive.hql"

# Split the hive args to a list
hive_args_list = hive_args.split()

# Initialize your Hive Step 
hiveEmrStep=[
        {
            'Name': 'Hive_EMR_Step',
            'ActionOnFailure': 'CONTINUE',
            'HadoopJarStep': {
                'Jar': 'command-runner.jar',
                'Args': hive_args_list
            }
        },
    ]

# Create Boto3 session and client
session = boto3.Session(region_name=AWS_REGION,profile_name=AWS_PROFILE)
client = session.client('emr')

# Submit and execute EMR Step
client.add_job_flow_steps(JobFlowId=cluster_id,Steps=hiveEmrStep)

#Where cluster_id is the ID of your cluster from AWS EMR (ex: j-2GS7xxxxxx)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32410325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档