2011-10-31 5 views
7

यह जावा ईओएफ अपवादों के साथ-साथ हैडोप के ईओएफ अपवाद के बारे में एक सामान्य प्रश्न है जो जार इंटरऑपरेबिलिटी से संबंधित है। किसी भी विषय पर टिप्पणियां और उत्तर स्वीकार्य हैं।हैबस/फाइल सिस्टम से हैडोप नामनोड कनेक्शन में ईओएफ अपवादों का क्या अर्थ है?

पृष्ठभूमि

मैं कुछ धागे जो एक गुप्त अपवाद है, जो अंततः एक "readInt" विधि के कारण होता है के बारे में बात ध्यान देने योग्य बात कर रहा हूँ। इस अपवाद में कुछ सामान्य प्रभाव हैं जो हडूप से स्वतंत्र हैं, लेकिन आखिरकार, हैडोप जार की अंतःक्रियाशीलता के कारण होता है।

मेरे मामले में, जब मैं जावा में हैडूप में एक नई फ़ाइल सिस्टम ऑब्जेक्ट बनाने की कोशिश करता हूं, तो मुझे यह मिल रहा है।

प्रश्न

मेरा प्रश्न है: क्या हो रहा है और यही कारण है कि एक पूर्णांक के पढ़ने एक EOF अपवाद फेंक करता है? यह ईओएफ अपवाद क्या है "फाइल" क्या है, और यदि दो जार इंटरऑपरेक्ट करने में सक्षम नहीं हैं तो ऐसा अपवाद क्यों फेंक दिया जाएगा?

गौणतः, मुझे यह भी पता है कि कैसे इस त्रुटि को ठीक करने के लिए तो मैं करने के लिए कनेक्ट और जावा एपीआई के साथ HDFS प्रोटोकॉल का उपयोग कर, दूर से पढ़ने/लिखने hadoops फाइल सिस्टम कर सकते हैं चाहते हैं ....

 
java.io.IOException: Call to /10.0.1.37:50070 failed on local exception: java.io.EOFException 
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1139) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1107) 
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 
    at $Proxy0.getProtocolVersion(Unknown Source) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:111) 
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:213) 
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:180) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1514) 
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67) 
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1548) 
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1530) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) 
    at sb.HadoopRemote.main(HadoopRemote.java:35) 
Caused by: java.io.EOFException 
    at java.io.DataInputStream.readInt(DataInputStream.java:375) 
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:819) 
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:720) 

उत्तर

5

हडूप के बारे में: मैंने त्रुटि तय की! आपको यह सुनिश्चित करना होगा कि कोर-साइट.एक्सएमएल 127.0.0.1 (लोकलहोस्ट) के बजाय 0.0.0.0 पर सेवा कर रहा है।

यदि आपको ईओएफ अपवाद मिलता है, तो इसका मतलब है कि पोर्ट उस आईपी पर बाहरी रूप से उपलब्ध नहीं है, इसलिए हैडूप क्लाइंट/सर्वर आईपीसी के बीच पढ़ने के लिए कोई डेटा नहीं है।

+1

इसका मतलब अन्य चीजों का भी हो सकता है ... ईओएफ अपवाद बहुत सामान्य है। – jayunit100

+0

क्षमा करें आपका मतलब 0.0.0.0 पर सेवा करना है। क्या आप अपनी कॉन्फ़िगरेशन से नाम/मूल्य प्रोप जोड़ी दस्तावेज कर सकते हैं? – hba

+1

"0.0.0.0 पर सेवा" से आपका क्या मतलब है? फ़ाइल core-site.sh में संपत्ति ' fs.default.name hdfs: // localhost: 9000/' है। इस सेटिंग को 'localhost' से' 0.0.0.0' में बदलना समस्या का समाधान नहीं करता है। – nikk

2

EOFException सॉकेट पर मतलब है कि कोई और डेटा नहीं है और सहकर्मी ने कनेक्शन बंद कर दिया है।

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