2014-04-22 6 views
12

में एक स्थान होना चाहिए। मैं विंडोज 7 पर हूं। मैंने mrjob स्थापित किया है और जब मैं वेबसाइट से example word_count file चलाता हूं, तो यह स्थानीय मशीन पर ठीक काम करता है। हालांकि, मुझे अमेज़ॅन ईएमआर पर चलाने का प्रयास करते समय त्रुटि मिलती है। मैंने बस बोटो के साथ अमेज़ॅन एस 3 से कनेक्ट करने का परीक्षण किया और यह काम करता है।mrjob: अमान्य बूटस्ट्रैप एक्शन पथ, अमेज़ॅन एस 3

mrjob.conf फ़ाइल

runners: 
    emr: 
    aws_access_key_id: xxxxxxxxxxxxx 
    aws_region: us-east-1 
    aws_secret_access_key: xxxxxxxx 
    ec2_key_pair: bzy 
    ec2_key_pair_file: C:\aa.pem 
    ec2_instance_type: m1.small 
    num_ec2_instances: 3 
    s3_log_uri: s3://myunique/ 
    s3_scratch_uri: s3://myunique/ 

चल मेरी cmd में निम्नलिखित

python word_count.py -c mrjob.conf -r emr mytext.txt 

यह

enter image description here

सुझाव यह एक खिड़कियों था कि पथ से संबंधित मुद्दे पर पैदा करता है, मैंने स्रोत कोड में parse.py की जांच की है, और यह देखता है एमएस खिड़की फ़ाइल प्रकारों से निपटने के लिए प्रासंगिक जांच के लिए

# Used to check if the candidate candidate uri is actually a local windows path. 
WINPATH_RE = re.compile(r"^[aA-zZ]:\\") 


def is_windows_path(uri): 
    """Return True if *uri* is a windows path.""" 
    if WINPATH_RE.match(uri): 
     return True 
    else: 
     return False 


def is_uri(uri): 
    """Return True if *uri* is any sort of URI.""" 
    if is_windows_path(uri): 
     return False 

    return bool(urlparse(uri).scheme) 

क्या मुझे समझ नहीं आता कि मैं अभी भी अद्यतन कोड के बाद भी त्रुटि हो रही है है, और मुझे यकीन है कि कैसे साथ आगे बढ़ने के लिए नहीं कर रहा हूँ इस।

+0

मेरी इच्छा है कि मैं आपकी मदद कर सकूं, लेकिन मैं विंडोज पर काम नहीं करता हूं और वर्तमान में एडब्ल्यूएस/ईएमआर तक आसानी से पहुंच नहीं है। एक बात जो मैं सुझाव देता हूं हालांकि त्रुटि लॉग को देखना है। हडोप स्पूज आउट अभी भी काफी गूढ़ हैं, लेकिन वे अक्सर गलत संकेतों के बारे में आपको पर्याप्त संकेत देते हैं। –

+0

कृपया '-v' के साथ फिर से चलाएं और पूरी चीज को http://paste.pound-python.org/ पर पोस्ट करें, निश्चित रूप से कुंजी को फिर से करने के बाद। क्या आपके पास बूटस्ट्रैप-एक्शन कॉन्फ़िगर नहीं है? – bukzor

+0

@bukzor http://paste.pound-python.org/show/rL6lwzD3tsASsQMXeq13/ – KJW

उत्तर

3

आप जिन समस्याओं का सामना कर रहे हैं, वे विंडोज़ सिस्टम सिस्टम के कारण अपने पथ में एस्केप कैरेक्टर \ (बैकस्लैश) का उपयोग कर विंडोज फाइल सिस्टम के कारण हैं। बस इसे दोहराएं और आपको और कोई समस्या नहीं होनी चाहिए। अधिक जानकारी के लिए

runners: 
    emr: 
    aws_access_key_id: xxxxxxxxxxxxx 
    aws_region: us-east-1 
    aws_secret_access_key: xxxxxxxx 
    ec2_key_pair: bzy 
    ec2_key_pair_file: C:\\aa.pem 
    ec2_instance_type: m1.small 
    num_ec2_instances: 3 
    s3_log_uri: s3://myunique/ 
    s3_scratch_uri: s3://myunique/ 

जाने पर जाएँ::

करने के लिए अपने mrjob.conf फ़ाइल बदलें http://yaml.org/spec/1.2/spec.html#id2770814

1

मैं एक ऐसी ही समस्या हो रही थी, और पाया कि मेरा मुद्दा यह था कि मैं विभिन्न से कोड को शामिल किया था मेरे काम के अंदर फ़ाइल पथ के साथ फाइलें। यदि ऐसा है, तो नोट किया गया त्रुटि भी होगी।

+0

यह सुनिश्चित नहीं है कि मैं इस कॉम्प्लेटली के तहत, – KJW

+0

को सॉर्ट करने का प्रबंधन कैसे करता हूं यदि आपके पास एक पाइथन स्क्रिप्ट है जो किसी स्थानीय फ़ाइल तक पहुंचने का प्रयास करती है, जैसे किसी फ़ाइल में एक सहायक फ़ंक्शन या उस फ़ाइल में मौजूद डेटा, फ़ाइल को संदर्भित करें जो स्थानीय रूप से काम करता है दूरस्थ मशीन पर मौजूद नहीं है - इसलिए यह त्रुटि देकर विफल हो जाएगी। अगर किसी अन्य खोजकर्ता को यह प्रश्न मिल जाए तो मैंने जवाब जोड़ा, लेकिन आपके कारण के कारण मेरे कारण में त्रुटि हो रही है। –