7
我试图发起集群和运行作业全部采用伯特启动并配置EMR集群。 我发现的创造job_flows的例子很多的。但我不能为我的生活,发现,展示了一个例子:如何使用博托
- 如何定义群集(由clusted_id)使用
- 如何配置启动群集(例如,如果我想用点情况下对某些任务节点)
我这么想吗?
我试图发起集群和运行作业全部采用伯特启动并配置EMR集群。 我发现的创造job_flows的例子很多的。但我不能为我的生活,发现,展示了一个例子:如何使用博托
我这么想吗?
宝途和底层EMR API当前混合术语簇和工作流,和作业流程正在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')
然后我们指定实例群体,包括我们要支付的任务节点现货价格:
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
此答案的更新通过'boto3'而不是boto来完成? – Navneet 2016-12-27 21:17:51
@vilsepi这给了我这个错误Amazon EMR集群(在python中创建的集群)在2017-10-02 08:21 UTC由于VALIDATION_ERROR的原因而终止,并显示错误。想法? –
thebeancounter
2017-10-02 08:26:40