2012-07-03 50 views
7

चलाते समय मैंने नामनोड -फॉर्मैट चलाया। यह मेरा आउटपुट है। मैंने फ़ाइल अनुमतियों को बदलने की कोशिश की chmod 777 hadoop।hadoop java.io.IOException: namenode -format

मेरा मानना ​​है कि इस लाइन त्रुटि त्रुटि namenode.NameNode है: java.io.IOException: निर्देशिका/अपने/path/to/Hadoop/tmp/dir/Hadoop-Hadoop/DFS/नाम नहीं बना सकता/वर्तमान

[email protected]:/usr/local/hadoop/bin$ ./hadoop namenode -format 
12/07/03 17:03:56 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = alexander-desktop/127.0.1.1 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 0.20.2 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010 
************************************************************/ 
12/07/03 17:03:56 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop 
12/07/03 17:03:56 INFO namenode.FSNamesystem: supergroup=supergroup 
12/07/03 17:03:56 INFO namenode.FSNamesystem: isPermissionEnabled=true 
12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current 
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:295) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1086) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1110) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:856) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:948) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 

12/07/03 17:03:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at alexander-desktop/127.0.1.1 


[email protected]:/usr/local$ sudo hadoop/bin/hadoop namenode -format 
sudo: /etc/sudoers is mode 0777, should be 0440 
sudo: no valid sudoers sources found, quitting 
+0

आपको शायद नामनोड पर प्रारूप करने से पहले अपने सभी डिमों को रोकने की आवश्यकता हो सकती है ..! –

उत्तर

13

सुडो के साथ प्रयास करें (मुझे एहसास है कि आपने अनुमतियां बदल दी हैं) लेकिन मैं अभी भी सूडो की कोशिश करता हूं और जांचता हूं कि इससे समस्या हल हो जाती है या नहीं।

+0

मैंने सूडोर्स के लिए अनुमति स्तर को बदलकर उपरोक्त त्रुटि को ठीक किया। मूल त्रुटि हल नहीं हुई है। ठीक है अब मुझे $ JAVA_HOME के ​​साथ समस्या है, मैं निर्यात $ JAVA_HOME का उपयोग कर सकता हूं और त्रुटि को ठीक करने के लिए पथ – alex

+0

@alex: क्या आपने conf/hadoop-env.sh में $ JAVA_HOME सेट किया था? जांचें कि क्या आपके पर्यावरण में यह जावा-एचओएमई सेट है। ध्यान दें कि सुडो उपयोगकर्ता पर्यावरण और आप पर्यावरण अलग हैं। कमांड printev और sudo printenv का प्रयोग करें। – FourOfAKind

+0

धन्यवाद कि समस्या को ठीक किया गया है, मैंने विभिन्न पर्यावरण चर सेटिंग्स के साथ भी प्रयोग किया है, इसलिए मुझे इसे सार्थक सीखने का अनुभव मिला। मुझे क्या उलझन में ट्यूटोरियल ने कहा कि आप या तो hadoop-env.sh या bash.bashrc फ़ाइल सेट कर सकते हैं। – alex

0

सूडो इस स्थिति में टूट गया है, लेकिन pkexec (पॉलिसीकिट के लिए कमांड लाइन फ्रंटेंड) अभी भी काम करता है, ताकि आप इसे एक ही कमांड से ठीक कर सकें। कोई रिबूटिंग आवश्यक नहीं है।

pkexec chmod 0440 /etc/sudoers 

यह मानता है PolicyKit स्थापित है। यदि यह एक डेस्कटॉप सिस्टम है (एक जीयूआई वाले सर्वर के बजाय), यह है।

1

चेक HDFS-site.xml विन्यास, यह हो सकता है गुण dfs.namenode.name.dir के लिए और मेरे मामले में dfs.datanode.data.dir यह समस्या का कारण था एक गलत मार्ग होता है (निर्देशिका था अन्य उपयोगकर्ता के घर फ़ोल्डर में स्थित)।

1- sudo सु

अपना पासवर्ड दर्ज करें -

+0

में मदद करें मुझे लगता है कि हर कोई सूडो के साथ परमाणु जा रहा है - त्रुटि संदेश कहता है: java.io.IOException: निर्देशिका/आपका/पथ/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current नहीं बना सकता - इसका मतलब यह नहीं होगा कि कभी भी धारक मूल्य क्या है डेटादिर निर्देशिका के लिए मौजूद नहीं है? Hdfs-site.xml के core-site.xml में अपने डिफ़ॉल्ट मानों को पहले जांचें? –

11

बाद चरणों मेरी समस्या हल हो गई।

2-/usr/local/hadoop/bin/hdfs namenode -format।

यह hadoop2.5 जिसमें "Hadoop namenode -format" इसलिए beendeprecated है

+0

धन्यवाद, यह काम किया! –

+0

मेरे लिए काम किया, धन्यवाद! स्वीकार्य उत्तर मेरे मामले में – randombee

+0

मेरे लिए समान नहीं था .. स्वीकृत उत्तर मेरे मामले में काम नहीं करता .. यह काम करता है ~ – MysticForce

2

का उपयोग कर "HDFS namenode -format" यह एक अनुमतियाँ मुद्दा है के लिए किया गया है। या तो आप जड़

रूप 1. sudo 2. लॉगिन का उपयोग कर सकते लेकिन सबसे अच्छा समाधान

sudo chown $ HADOOP_HOME

Hadoop namenode -format

कहाँ HADOOP_HOME अपने Hadoop स्थापना है निर्देशिका

+0

सुडो ने $ HADOOP_HOME को किस अनुमति के लिए दिखाया? –