getmerge
कमांड विशेष रूप से स्थानीय फ़ाइल सिस्टम पर एक फ़ाइल में एचडीएफएस से फ़ाइलों को विलय करने के लिए बनाया गया है।
यह आदेश मैपरेडस नौकरी के आउटपुट को डाउनलोड करने के लिए बहुत उपयोगी है, जो एकाधिक भाग- * फाइलें उत्पन्न कर सकता है और उन्हें स्थानीय रूप से एक फ़ाइल में जोड़ सकता है, जिसे आप अन्य परिचालनों के लिए उपयोग कर सकते हैं (उदाहरण के लिए इसे एक प्रस्तुति के लिए एक्सेल शीट)।
अपने प्रश्नों के उत्तर:
गंतव्य फाइल सिस्टम पर्याप्त स्थान नहीं है, तो IOException फेंक दिया है। getmerge
आंतरिक रूप से IOUtils.copyBytes()
(IOUtils.copyBytes() देखें) का उपयोग करता है ताकि एक फ़ाइल को एचडीएफएस से स्थानीय फाइल में एक समय में कॉपी किया जा सके। कॉपी ऑपरेशन में कोई त्रुटि होने पर यह फ़ंक्शन IOException
फेंकता है।
यह आदेश hdfs fs -get
कमांड के समान है जो एचडीएफएस से स्थानीय फाइल सिस्टम में फ़ाइल प्राप्त करता है। केवल अंतर hdfs fs -getmerge
एचडीएफएस से स्थानीय फाइल सिस्टम में कई फाइलों को विलय करता है।
आप HDFS में एकाधिक फ़ाइलों को मर्ज करना चाहते हैं, तो आप इसे FileUtil
वर्ग (FileUtil.copyMerge() देखें) से copyMerge()
पद्धति का उपयोग करके प्राप्त कर सकते हैं।
यह एपीआई एक निर्देशिका में सभी फ़ाइलों को एक फ़ाइल में कॉपी करता है (सभी स्रोत फ़ाइलों को विलीन करता है)।
स्रोत
2016-04-16 07:32:36
मुझे पता है कि यह आपका प्रश्न नहीं है, लेकिन शायद आपको यह पोस्ट उपयोगी लगेगा: http: //stackoverflow.com/questions/21776339/hadoop-getmerge-to-another-machine – vefthym