gpt4 book ai didi

python - 如何使用 boto 启动和配置 EMR 集群

转载 作者:IT老高 更新时间:2023-10-28 21:16:22 25 4
gpt4 key购买 nike

我正在尝试使用 boto 启动集群并运行作业。我发现了很多创建工作流的例子。但我不能为我的生活,找到一个例子表明:

  1. 如何定义要使用的集群(通过 clusted_id)
  2. 如何配置启动集群(例如,如果我想为某些任务节点使用 Spot 实例)

我错过了什么吗?

最佳答案

Boto 和底层 EMR API 目前正在混合使用术语 clusterjob flow,job flow 是 deprecated .我认为它们是同义词。

您可以通过调用 boto.emr.connection.run_jobflow() 函数来创建一个新集群。它将返回 EMR 为您生成的集群 ID。

首先是所有强制性的事情:

#!/usr/bin/env python

import boto
import boto.emr
from boto.emr.instance_group import InstanceGroup

conn = boto.emr.connect_to_region('us-east-1')

然后我们指定实例组,包括我们要为 TASK 节点支付的现货价格:

instance_groups = []
instance_groups.append(InstanceGroup(
num_instances=1,
role="MASTER",
type="m1.small",
market="ON_DEMAND",
name="Main node"))
instance_groups.append(InstanceGroup(
num_instances=2,
role="CORE",
type="m1.small",
market="ON_DEMAND",
name="Worker nodes"))
instance_groups.append(InstanceGroup(
num_instances=2,
role="TASK",
type="m1.small",
market="SPOT",
name="My cheap spot nodes",
bidprice="0.002"))

最后我们启动一个新的集群:

cluster_id = conn.run_jobflow(
"Name for my cluster",
instance_groups=instance_groups,
action_on_failure='TERMINATE_JOB_FLOW',
keep_alive=True,
enable_debugging=True,
log_uri="s3://mybucket/logs/",
hadoop_version=None,
ami_version="2.4.9",
steps=[],
bootstrap_actions=[],
ec2_keyname="my-ec2-key",
visible_to_all_users=True,
job_flow_role="EMR_EC2_DefaultRole",
service_role="EMR_DefaultRole")

如果我们关心的话,我们也可以打印集群 ID:

print "Starting cluster", cluster_id

关于python - 如何使用 boto 启动和配置 EMR 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com