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