2012-03-18 9 views
10

में हैडऑप उदाहरणों को कम करने में समस्याएं मैं बस अपने लैपटॉप पर स्टैंडअलोन मोड में 64-बिट विंडोज 7 चलाने वाले हैडोप को चलाने की कोशिश कर रहा हूं। मैंने डिफ़ॉल्ट फ़ोल्डर में सिगविन 1.7 स्थापित किया है (सी: \ cygwin)। मेरे पास फ़ोल्डर c: \ jdk1.7.0_03 में नवीनतम जेडीके है, और JAVA_HOME पर्यावरण परिवर्तक सेट किया है।सरल मानचित्र चलने में समस्याएं- साइगविन

जब मैं एक cygwin शीघ्र से निम्न आदेश चलाने का प्रयास:

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 

यहाँ है त्रुटि मैं:

12/03/17 19:08:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ehtzrhf\mapred\staging\ehtzrhf837602798\.staging to 0700 
     at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682) 
     at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655) 
     at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:484) 
     at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:319) 
     at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189) 
     at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116) 
     at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:848) 
     at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:842) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) 
     at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:842) 
     at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:816) 
     at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1253) 
     at org.apache.hadoop.examples.Grep.run(Grep.java:69) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
     at org.apache.hadoop.examples.Grep.main(Grep.java:93) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 
     at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) 
     at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:156) 

मैं दोनों Hadoop 1.0.1 और भी Hadoop के साथ की कोशिश की है -0.20.205.0 और एक ही समस्या प्राप्त करें। मैं

export TMP=/cygdrive/c/temp 
export TEMP=/cygdrive/c/temp 

मैं भी रास्ते पर cygwin बिन फ़ोल्डर में जोड़ दिया है के साथ अपने .bashrc नवीनीकृत किया है:

export PATH=.:/cygdrive/c/cygwin/bin:$HADOOP_INSTALL/bin 

मैं भी यह बहुत अजीब यह \ tmp के रूप में पथ दिखा रहा है लगता है ... इसके बजाए/tmp/...

किसी भी विचार को पुनर्निर्माण या चलाने के लिए कोई भी विचार?

+0

btw, एक ही सेटअप के साथ है, लेकिन Hadoop 0.20.2 का उपयोग कर, मैं नहीं इसमें भागो – dplante

+0

हाँ, मुझे कल भी इसका सामना करना पड़ा। अगर किसी के पास इसके लिए कोई फिक्स है तो मुझे खुशी होगी। +1 –

उत्तर

2

निश्चित (प्रमुख याक शेविंग)

https://issues.apache.org/jira/browse/HADOOP-7682?focusedCommentId=13236645#comment-13236645

+0

हाँ, इसे जिरा को भी पोस्ट करने के लिए धन्यवाद। मैंने 1.0.0 का एक कस्टम संस्करण बनाकर इसे अपने लिए तय किया है जहां फ़ाइल विधियों का वापसी मूल्य चेक नहीं किया गया है। यह 'FileUtil.setPermission' में होता है, बस' checkReturnValue' –

+1

'के साथ सभी पंक्तियों को हटा दिया गया है डेव लैथम ने सेट पैरामिशन() .https: //issues.apache.org/jira/browse/HADOOP-7682 – FKorning

0

मैं इस बिंदु जहां रोजगार, भेज दिया जाता है कार्य निष्पादित, और परिणामों को संकलित करने के लिए काम कर पाने में कामयाब रहे है।

हालांकि हम अभी भी cygwin सिमलिंक को समझने के लिए सर्वलेट प्राप्त करने की आवश्यकता। मुझे नहीं पता कि जेटी में ऐसा कैसे करें।

ये दो लिंक दिखाते हैं कि टॉमकैट और जेटी को सिम्लिंक का पालन करने की अनुमति कैसे दी जाए, लेकिन मुझे नहीं पता कि यह सिगविन में काम करता है या नहीं। * http://www.lamoree.com/machblog/index.cfm?event=showEntry&entryId=A2F0ED76-A500-41A6-A1DFDE0D1996F925 * Configure Symlinks for single directory in Tomcat

अन्यथा हम घाट कोड खुल जाएगा और org.apache.hadoop.fs.LinkedFile साथ java.io.File प्रतिस्थापित करना होगा।

+0

को पैच किया है: http: //en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin – FKorning

7

यहाँ एक सरल से उपयोग वैकल्पिक हल है कि किसी भी याक शेविंग की आवश्यकता नहीं है है: जैसा कि ऊपर

https://github.com/congainc/patch-hadoop_7682-1.0.x-win

+0

धन्यवाद! एक जादू की तरह काम किया... – Hrushikesh

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