2013-01-31 19 views
5

मैं ईएमआर में वर्कफ़्लो का उपयोग करके एस 3 से एचडीएफएस में फ़ाइलों की प्रतिलिपि बनाने की कोशिश कर रहा हूं और जब मैं नीचे कमांड चलाता हूं तो जॉबफ्लो सफलतापूर्वक शुरू होता है लेकिन फ़ाइल को कॉपी करने का प्रयास करते समय मुझे एक त्रुटि देता है एचडीएफएस के लिए। क्या मुझे कोई इनपुट फ़ाइल अनुमतियां सेट करने की आवश्यकता है?s3distcp का उपयोग कर अमेज़ॅन एस 3 से एचडीएफएस की फाइलों को कॉपी करें

कमान:

./elastic-mapreduce --jobflow j-35D6JOYEDCELA --jar S3: //us-east-1.elasticmapreduce/libs/s3distcp/1.latest/s3distcp.jar - -args '--src, एस 3: // odsh/इनपुट/- गंतव्य, HDFS: /// उपयोगकर्ता

आउटपुट

टास्क TASKID = "task_201301310606_0001_r_000000" TASK_TYPE = "कम" TASK_STATUS = "FAILED" FINISH_TIME = "1359612576612" ERROR = "java.lang.RuntimeException: Reducer कार्य 1 फ़ाइलों की प्रतिलिपि बनाने में विफल रहा: s3: // odsh/input/GL _01112_20121019.dat आदि com.amazon.external.elasticmapreduce.s3distcp.CopyFilesReducer.close (CopyFilesReducer.java:70) org.apache.hadoop.mapred.ReduceTask.runOldReducer (ReduceTask.java:538) पर पर संगठन पर। apache.hadoop.mapred.ReduceTask.run (ReduceTask.java:429) org.apache.hadoop.mapred.Child $ 4.run (Child.java3955) java.security.AccessController.doPrivileged (मूल विधि) पर javax.security.auth.Subject.doAs (Subject.java:396) org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1132) org.apache.hadoop.mapred.Child पर। मुख्य (Child.java 4449)

उत्तर

6

मुझे एक ही अपवाद मिल रहा है। ऐसा लगता है कि बग दौड़ की स्थिति के कारण होता है जब CopyFilesReducer S3 से फ़ाइलों को डाउनलोड करने के लिए एकाधिक CopyFilesRunable उदाहरणों का उपयोग करता है। समस्या यह है कि यह एकाधिक थ्रेड में एक ही अस्थायी निर्देशिका का उपयोग करता है, और जब थ्रेड निष्पादित होते हैं तो थ्रेड निर्देशिका को हटा देते हैं। इसलिए, जब एक धागा किसी दूसरे के सामने पूरा होता है तो यह temp निर्देशिका को हटा देता है कि एक और थ्रेड अभी भी उपयोग कर रहा है।

मैंने एडब्ल्यूएस को समस्या की सूचना दी है, लेकिन उस समय आप रेड्यूसर को अपनी नौकरी कॉन्फ़िगरेशन में परिवर्तनीय s3DistCp.copyfiles.mapper.numWorkers से 1 सेट करके एक थ्रेड का उपयोग करने के लिए मजबूर कर सकते हैं।

+0

किसी को इस अमेज़न द्वारा तय हो गई है तो क्या होगा? –

1

मुझे दौड़ की स्थिति के कारण यही समस्या दिखाई देती है। -Ds3DistCp.copyfiles.mapper.numWorkers=1 पास करने से समस्या से बचने में मदद मिलती है।

मुझे आशा है कि अमेज़ॅन इस बग को ठीक करेगा।

2

श्रमिकों की संख्या समायोजित करने के लिए मेरे लिए काम नहीं किया; s3distcp हमेशा एक छोटे/मध्यम उदाहरण पर विफल रहा। कार्य नौकरी के ढेर आकार को बढ़ाने (-D mapred.child.java.opts=-Xmx1024m के माध्यम से) ने इसे मेरे लिए हल किया।

उदाहरण उपयोग:

hadoop jar /home/hadoop/lib/emr-s3distcp-1.0.jar 
    -D mapred.child.java.opts=-Xmx1024m 
    --src s3://source/ 
    --dest hdfs:///dest/ --targetSize 128 
    --groupBy '.*\.([0-9]+-[0-9]+-[0-9]+)-[0-9]+\..*' 
    --outputCodec gzip