2014-10-11 5 views
7

का उपयोग कर ईएमआर क्लस्टर को लॉन्च और कॉन्फ़िगर कैसे करें मैं क्लस्टर लॉन्च करने और बोटो का उपयोग करके सभी नौकरी चलाने की कोशिश कर रहा हूं। मुझे job_flows बनाने के कई उदाहरण मिलते हैं। लेकिन मैं मुझे के जीवन के लिए नहीं, एक उदाहरण है कि पता चलता पा सकते हैं:बोटो

  1. कैसे क्लस्टर परिभाषित करने के लिए (clusted_id द्वारा) प्रयोग की जाने वाली
  2. कैसे एक लांच उदाहरण के लिए एक क्लस्टर कॉन्फ़िगर करने के लिए (, तो मैं कुछ कार्य नोड्स के लिए स्पॉट इंस्टेंस का उपयोग करना चाहता हूं)

क्या मुझे कुछ याद आ रहा है?

उत्तर

16

Boto और अंतर्निहित ईएमआर API में इस समय मामले क्लस्टर और काम प्रवाह मिश्रण है, और काम प्रवाह deprecated जा रहा है। मैं उन्हें समानार्थी मानता हूं।

आप boto.emr.connection.run_jobflow() फ़ंक्शन को कॉल करके एक नया क्लस्टर बनाते हैं। यह क्लस्टर आईडी लौटाएगा जो ईएमआर आपके लिए उत्पन्न करता है।

पहले सभी अनिवार्य बातें:

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")) 

अंत में हम एक नए क्लस्टर शुरू:

#!/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') 

फिर हम मौके कीमत हम टास्क नोड्स के लिए भुगतान करना चाहते हैं सहित, उदाहरण के समूहों को निर्दिष्ट:

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") 

हम भी क्लस्टर आईडी मुद्रित कर सकते हैं, तो हम उस के बारे में परवाह:

print "Starting cluster", cluster_id 
+0

बोटो के बजाय 'boto3' के साथ इस उत्तर के लिए कोई अपडेट? – Navneet

+0

@vilsepi यह मुझे यह त्रुटि देता है अमेज़ॅन ईएमआर क्लस्टर (पायथन में क्लस्टर) 2017-10-02 08:21 यूटीसी में त्रुटियों के साथ समाप्त हो गया है VALIDATION_ERROR के कारण। विचार? – thebeancounter

संबंधित मुद्दे