नाम नोड सुरक्षित मोड में है। छोड़ने में सक्षम नहीं है


122
root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.

hdfs में कुछ भी बनाने में सक्षम नहीं है

मैंने किया

root# bin/hadoop fs -safemode leave

लेकिन दिखा रहा है

safemode: Unknown command

समस्या क्या है?

उपाय



2
मेरे मामले में, यह सुरक्षित नोड में था क्योंकि संसाधन कम थे (
docker

@BrendenBrown, यहाँ Hadoop 3.2.0 के लिए वर्तमान में काम कर रहा लिंक है: hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/…
Eugen Gr। फिलिपोव

और यहाँ Hadoop «स्थिर» (वर्तमान में 2.9.x) के लिए वर्तमान में काम कर रहा लिंक है: hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/…
यूजीन जीआर। फिलिपोव

जवाबों:


211

निम्नलिखित आदेशों पर अमल करने के लिए नामेनोड को सुरक्षित रूप से छोड़ने के लिए बलपूर्वक आदेश दिया जाना चाहिए:

 bin/hadoop dfsadmin -safemode leave

आप हो रही है Unknown commandअपने आदेश के लिए त्रुटि के रूप में -safemodeके लिए एक उप-आदेश नहीं है hadoop fs, लेकिन इसके बारे में है hadoop dfsadmin

उपरोक्त आदेश के बाद भी, मैं आपको एक बार चलाने का सुझाव hadoop fsckदूंगा ताकि hdfs में आने वाली किसी भी विसंगति का हल हो सके।

अपडेट करें:

नए वितरण के लिए hdfsकमांड के बजाय कमांड का उपयोग करें hadoophadoopआदेश पदावनत किया जा रहा है:

hdfs dfsadmin -safemode leave

hadoop dfsadminहटा दिया गया है और इसलिए hadoop fsकमांड है, सभी hdfs संबंधित कार्यों को एक अलग कमांड में स्थानांतरित किया जा रहा है hdfs


2
वास्तव में यह क्यों प्रदर्शित करता है कि '
नेमेनोड सेफमोड में है

1
मूल रूप से नामेनोड असामान्य स्थितियों में सुरक्षित मोड में प्रवेश करता है, उदाहरण के लिए जब डिस्क भरा हुआ है, स्टार्ट-अप चरण में भी। यहाँ और पढ़ें; hadoop.apache.org/docs/stable/hdfs_user_guide.html#Safemode
Amar

2
मैं Hadoop 2.0.0-cdh4.1.1 का उपयोग कर रहा हूं। जब मैंने hadoop dfsadminकमांड चलाया , तो इसने मुझे यह दिया: ______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF ______ ... लेकिन फिर भी भाग गया। नीचे दिए गए सिंटैक्स पर @ user3316017 द्वारा सुझाव दिया गया है।
CJBS

नए वितरण के अनुसार मेरे उत्तर को अपडेट करें, अगर कोई भी अपाचे हडूप के सटीक संस्करण को स्थापित करने में हमारी मदद कर सकता है जब से ये चित्रण आए हैं, यह बहुत अच्छा होगा।
अमर

1
ऐसे मामले के लिए जहां कॉम्पट के hdfs dfsadmin -safemode leaveचलते ही एचडीएफएस फिर से सुरक्षित मोड में चला जाता है क्योंकि क्लस्टर भरा हुआ है, कभी-कभी सामान की सफाई के लिए एक कमांड का hdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
पीछा

27

यह कोशिश करो, यह काम करेगा

sudo -u hdfs hdfs dfsadmin -safemode leave

इस कमांड ने मेरे लिए काम किया क्योंकि इसके लिए सुपरसीजर प्राइवेटाइल की आवश्यकता हो सकती है..धन्यवाद @wesam
NikhilP

21

कमांड ने मेरे लिए काम नहीं किया लेकिन निम्नलिखित ने किया

hdfs dfsadmin -safemode leave

मैंने hdfsकमांड की जगह कमांड का इस्तेमाल किया hadoop

चेक आउट http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe- मोड- लिंक भी



7

यदि आप Hadoop संस्करण 2.6.1 से ऊपर का उपयोग करते हैं, जबकि कमांड काम करता है, तो यह शिकायत करता है कि इसका मूल्यह्रास। मैं वास्तव में उपयोग नहीं कर सका hadoop dfsadmin -safemode leaveक्योंकि मैं डॉकटर कंटेनर में हडोप चला रहा था और कंटेनर में चलने पर यह कमांड जादुई रूप से विफल हो जाता है, इसलिए मैंने जो किया वह यह था। मैंने डॉक्टर की जाँच की और dfs.safemode.threshold.pctकहा कि प्रलेखन में पाया गया

ब्लॉक का प्रतिशत निर्दिष्ट करता है जो dfs.replication.min द्वारा परिभाषित न्यूनतम प्रतिकृति आवश्यकता को पूरा करना चाहिए। 0 से कम या इसके बराबर के मान का मतलब है कि सेफडेम से बाहर निकलने से पहले किसी विशेष प्रतिशत के लिए प्रतीक्षा न करना। 1 से अधिक मूल्य सुरक्षित मोड को स्थायी बना देगा।

तो मैं बदल गया hdfs-site.xml निम्नलिखित में (पुराने Hadoop संस्करणों में, जाहिर तौर पर आपको इसे करने की आवश्यकता है hdfs-default.xml:

<configuration>
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
</configuration>

5

मेमोरी की कमी होने पर नेमनोड सेफमोड में प्रवेश करता है। परिणामस्वरूप HDFS केवल पढ़ने योग्य हो जाता है। इसका मतलब है कि कोई भी HDFS में कोई अतिरिक्त निर्देशिका या फ़ाइल नहीं बना सकता है। सेफ़मोड से बाहर आने के लिए, निम्न कमांड का उपयोग किया जाता है:

hadoop dfsadmin -safemode leave

यदि आप क्लाउड मैनेजर का उपयोग कर रहे हैं:

go to >>Actions>>Leave Safemode

लेकिन यह हमेशा समस्या का समाधान नहीं करता है। पूरा समाधान मेमोरी में कुछ जगह बनाने में निहित है। अपने मेमोरी उपयोग की जांच करने के लिए निम्नलिखित कमांड का उपयोग करें।

free -m

यदि आप क्लाउडडर का उपयोग कर रहे हैं, तो आप यह भी देख सकते हैं कि एचडीएफएस खराब स्वास्थ्य के कुछ लक्षण दिखा रहा है या नहीं। यह संभवतया नामेनोड से संबंधित कुछ मेमोरी इश्यू दिखा रहा होगा। उपलब्ध विकल्पों का पालन करके अधिक मेमोरी आवंटित करें। मुझे यकीन नहीं है कि अगर आप क्लाउड प्रबंधक का उपयोग नहीं कर रहे हैं तो उसी के लिए क्या उपयोग करना है, लेकिन एक तरीका होना चाहिए। आशा करता हूँ की ये काम करेगा! :)


5

इसे इस्तेमाल करे

sudo -u hdfs hdfs dfsadmin -safemode leave

सुरक्षा की स्थिति की जाँच करें

sudo -u hdfs hdfs dfsadmin -safemode get

यदि यह अभी भी सुरक्षित है, तो इसका एक कारण आपके नोड में पर्याप्त स्थान नहीं होगा, आप अपने नोड डिस्क उपयोग की जांच कर सकते हैं:

df -h

यदि रूट विभाजन भरा हुआ है, तो फ़ाइलों को हटा दें या अपने रूट विभाजन में स्थान जोड़ें और पहले चरण को पुनः प्रयास करें।


4

सुरक्षित मोड का मतलब है (HDFS READ केवल मोड में है)
सुरक्षित मोड बंद का मतलब है (HDFS लेखन योग्य और पठनीय मोड में है)

में Hadoop 2.6.0, हम आदेशों नीचे की मदद से नाम नोड की स्थिति की जांच कर सकते हैं:

नाम नोड स्थिति की जाँच करें

$ hdfs dfsadmin -safemode get

सेफ मोड में दर्ज करने के लिए:

$ hdfs dfsadmin -safemode enter

सुरक्षित मोड से बाहर निकलें

~$ hdfs dfsadmin -safemode leave

1
फोर्स लीव सेफ सेफ मोड: ~ $ hdfs dfsadmin -safemode forceExit
ammills01

1

सुरक्षित मोड को अक्षम करने के लिए HDFS OS उपयोगकर्ता का उपयोग करके नीचे दिए गए आदेश को चलाएं:

sudo -u hdfs hadoop dfsadmin -safemode leave

0

सुरक्षित मोड को बंद करने के लिए कमांड के नीचे का उपयोग करें

$> hdfs dfsadmin -safemode छुट्टी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.