2014-06-09 10 views
6

से हैडोप नाम नोड रिकवरी मैं एनएन मेटाडाटा रिकवरी की कोशिश कर रहा हूं। मैंने नामनोड और जर्नल नोड मेटा डेटा का बैकअप लिया है। इसमें संपादन लॉग और fsimages शामिल हैं।मेटाडाटा बैकअप

मेरे सिस्टम में दो एनएन हैं। मैं नियमित आवृत्ति पर दोनों एनएन (एचडीएफएस मेटाडाटा & क्यूजेएम मेटाडाटा) पर मेटाडेटा का बैकअप लेता हूं। मैं एक सबसे खराब स्थिति परिदृश्य में वसूली प्रक्रिया का परीक्षण करना चाहता हूँ। मान लें कि मेटाडेटा पूरी तरह से हटाए गए एनएनएस और जर्नल नोड दोनों नीचे हैं।

मैं बैकअप से एनएन मेटाडेटा पुनर्प्राप्त करना चाहता हूं और एनएन शुरू करना चाहता हूं। मुझे पता है कि डेटा हानि हो सकती है क्योंकि बैकअप के बाद किए गए नवीनतम परिवर्तन गायब होंगे।

प्रश्न:

  1. क्या आपको लगता है ऐसे परिदृश्य संभव/संभव है?
  2. मुझे टीएक्सएन आईडी मिस्चैच, प्रतिबद्ध टीएक्सएन आईडी से संबंधित कुछ मुद्दों का सामना करना पड़ रहा है। कृपया बताएं कि इसके लिए कोई समाधान है या नहीं।

कदम की कोशिश की:

  1. एनएन और QJM की लें मेटाडाटा बैकअप। कुछ एचडीएफएस फाइल ऑपरेशंस (नई फाइलें बनाएं) करें।
  2. दोनों मशीनों पर एनएन और जर्नल नोड रोकें।
  3. /डेटा/एचडीएफएस और जर्नल निर्देशिकाओं से मेटाडेटा हटाएं।
  4. बैकअप से Fsimages पुनर्स्थापित करें (कुछ समय पहले लिया गया)।
  5. एनएन शुरू करें। यह नीचे अपवाद के साथ विफल रहता है।

वैकल्पिक दृष्टिकोण: सभी संपादन लॉग और fsimage दोनों hdfs और qjm निर्देशिकाओं को पुनर्स्थापित करें और एनएन शुरू करें लेकिन फिर भी यह विफल हो जाता है।

दोनों एनएन नीचे हैं और मैं नहीं ला सकता हूं। मैं hdfs को प्रारूपित नहीं करना चाहता क्योंकि यह क्लस्टर आईडी बदल जाएगा और बैकअप उपयोग योग्य नहीं होगा।

अपवाद:

  1. वहाँ संपादन लॉग में एक अंतराल प्रतीत होता है। हमें टीएक्सआईडी 71453 की उम्मीद थी, लेकिन टीएक्सआईडी 71466
  2. क्लाइंट 715 99 से 71453
  3. पुनर्प्राप्ति के लिए आवश्यक टक्सिड पिछड़ा स्थानांतरित करने की कोशिश कर रहा है। आवश्यक पुनर्गठन के लिए असफलता प्रमाणपत्र विफल रहे। startTxId करने के लिए लॉग सिंक्रनाइज़ करने का फैसला किया: 71,453 लेकिन लकड़हारा 10.204.64.26:8485 txid 71,599 प्रतिबद्ध

उत्तर

1

आप के साथ ठीक सक्षम झंडा namenode शुरू कर सकते हैं देखा था। Namenode ठीक से भ्रष्ट maetadata का ख्याल रखेगा।

./bin/hadoop namenode -recover 
0

सभी जर्नल नोड प्रारंभ करें। सुनिश्चित करें कि आपने fsimage, fsimage.md5 और संस्करण फ़ाइल की प्रतिलिपि बनाई है। फिर hdfs namenode-initializeSharedEdits -force चलाएं, यह केवल जर्नल नोड प्रारूपित करेगा। फिर नाम नोड (1) शुरू करें। यह काम करना चाहिए। मुझे बताएं, अगर यह काम नहीं करता है।

1
  1. क्योंकि नवीनतम FsImage और संपादित खो दिया है या दूषित हो गया है, तो आप वसूली करने के लिए मेटाडाटा

    ./bin/hadoop namenode -recover

    की कोशिश करनी चाहिए देखें: NameNode Recovery Tools for the Hadoop Distributed File System

  2. क्योंकि पत्रिका के साथ सिंक नहीं है namenode, आपको इसे

    ./bin/hdfs namenode -initializeSharedEdits

  3. क्योंकि बरामद FsImage नवीनतम डेटा पिछले बैकअप के बाद अद्यतन को खो दिया है, आप जांच और

    ./bin/hadoop fsck -delete /

    भ्रष्ट डेटा हटा देना चाहिए आप ऍफ़एससीके ऐसा नहीं करते हैं, namenode में फंस जा सकता है सुरक्षित मोड, बहुत सारे उत्तरदायी ब्लॉक के लिए।

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