2013-05-23 7 views
5

में एचडीएफएस के रूप में सेट नहीं कर सकता है। मैं छद्म-वितरित मोड में हैडोप 1.0.3 का उपयोग कर रहा हूं। और मेरा conf/core-site.xml निम्नानुसार सेट है:हडोप: मूल फ़ाइल सिस्टम को कोर-साइट.एक्सएमएल

<configuration> 
    <property> 
     <name>fs.default.name</name> 
     <value>hdfs://localhost:9000</value> 
    </property> 
    <property> 
    <name>mapred.child.tmp</name> 
    <value>/home/administrator/hadoop/temp</value> 
    </property> 
</configuration> 

इसलिए मेरा मानना ​​था कि मेरा डिफ़ॉल्ट फाइल सिस्टम एचडीएफएस पर सेट है। हालांकि, जब मैं निम्नलिखित कोड चलाएँ:

Configuration conf = new Configuration(); 
FileSystem fs = FileSystem.get(conf); 

मैंने सोचा था कि FS एक DistributedFileSystem उदाहरण होना चाहिए। हालांकि, यह LocalFileSystem उदाहरण हो गया है।

लेकिन, अगर मैं निम्नलिखित कोड चलाएँ:

Configuration conf = new Configuration(); 
conf.set("fs.default.name", "hdfs://localhost:9000"); 
FileSystem fs = FileSystem.get(conf); 

तो मैं एक DistributedFileSystem FS मिल सकती है।

क्या मेरा डिफ़ॉल्ट फ़ाइल सिस्टम कोर-साइट.एक्सएमएल में एचडीएफएस पर सेट नहीं है? यदि नहीं, तो मुझे इसे कैसे सेट करना चाहिए?

+0

आप अपना काम कैसे चला रहे/लॉन्च कर रहे हैं? क्या आप अधिक कोड पोस्ट कर सकते हैं? –

+0

@ChrisWhite क्या यह मेरा काम कैसे चलाता है इससे प्रभावित है? मेरे कोर-साइट.एक्सएमएल ठीक से लोड होने के बाद डिफ़ॉल्ट फ़ाइल सिस्टम को hdfs पर सेट नहीं किया जाना चाहिए? – Denzel

+1

हां, लेकिन यदि आप अपने ऐप को 'जावा myjar.jar ...' के बजाय 'हूओप जार myjar.jar' के बजाय लॉन्च कर रहे हैं ... तो कोर-साइट.एक्सएमएल क्लासपाथ पर नहीं हो सकता है, और इसलिए ' लोड नहीं किया जाएगा। Conf ऑब्जेक्ट बनाने के बाद अपने कोड में 'fs.default.name' के मान को आज़माएं और आउटपुट करें। –

उत्तर

4

ग्रहण पर्यावरण को पता नहीं है कि हैडोप के अंतर्गत conf निर्देशिका निर्देशिका को कोर-default.xml और core-site.xml खोजने के लिए कहां स्थापित करती है जब तक कि इन फ़ाइलों को ग्रहण क्लासपाथ में पहले लोड करने के लिए जोड़ा नहीं जाता है।

चूंकि ये ग्रहण क्लासपाथ में नहीं जोड़े गए हैं, इसलिए डिफ़ॉल्ट कोर-साइट.एक्सएमएल जार फ़ाइल हैडूप - * - core.jar से लोड किया जाएगा (उदाहरण के लिए: संस्करण के लिए हैडोप-0.20.2-core.jar 0.20) जिसमें स्थानीय सिस्टम डिफ़ॉल्ट फाइल सिस्टम के रूप में है और इसलिए आप ऑब्जेक्ट DistributedFileSystem के बजाय देख रहे हैं।

तो, परियोजना classpath ग्रहण करने के लिए <HADOOP_INSTALL>/conf निर्देशिका जोड़ने के लिए, गोटो परियोजना गुण (परियोजना -> गुण) -> जावा का निर्माण पथ -> पुस्तकालय टैब -> बाहरी वर्ग फ़ोल्डर जोड़ें -><HADOOP_INSTALL>

से conf निर्देशिका का चयन करें

उपर्युक्त को आपके ग्रहण वर्गपथ में अपना '/core-site.xml' जोड़ना चाहिए और आपकी सभी सेटिंग्स को डिफ़ॉल्ट लोगों को ओवरराइड करना चाहिए।

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