पर एक टैरबॉल लोड करने के लिए कैसे करें मेरे पास एक लॉग फ़ाइल है जो मेरे हैडूप क्लस्टर में लोड टैरबॉल (access.logs.tar.gz) में है। मैं सोच रहा था कि इसे सीधे छेड़छाड़ के साथ इसे लोड करने का तरीका है?डुबकी
डुबकी
उत्तर
पिगस्टोरस फ़ाइल को संकुचित करेगा (.gz एक्सटेंशन द्वारा, यह वास्तव में TextInputFormat में लागू किया गया है जो PigTextInputFormat विस्तारित करता है), लेकिन उसके बाद आप एक टैर फ़ाइल से निपटेंगे। यदि आप टैर में फ़ाइलों के बीच हेडर लाइनों को संभालने में सक्षम हैं तो आप केवल पिगस्टॉरेज का उपयोग कर सकते हैं, अन्यथा आपको प्रत्येक फ़ाइल
के बीच टैर हेडर लाइनों को अलग करने के लिए PigTextInputFormat का अपना एक्सटेंशन लिखना होगा।@ क्रिसवाइट का जवाब तकनीकी रूप से सही है और आपको मेरा जवाब (कम से कम आईएमओ) के बजाय अपना जवाब स्वीकार करना चाहिए।
आपको हडोप के साथ tar.gz
फ़ाइलों से दूर जाने की आवश्यकता है। Gzip फ़ाइलें विभाजित नहीं हैं, इसलिए आप स्थिति में आते हैं जहां आपकी gzip फ़ाइलें बड़ी हैं, तो आप अपने मैपर्स में हॉटस्पॉटिंग देखने जा रहे हैं। उदाहरण के लिए, यदि आपके पास .tar.gz
फ़ाइल है जो 100 जीबी है, तो आप गणना को विभाजित करने में सक्षम नहीं होंगे।
चलिए दूसरी तरफ कहते हैं कि वे छोटे हैं। इस मामले में, सुअर उन्हें एक साथ इकट्ठा करने का अच्छा काम करेगा और विभाजन की समस्या दूर हो जाएगी। इस तथ्य का नकारात्मक पक्ष है कि अब आप नाम नोड के साथ कई छोटी फाइलों से निपट रहे हैं। साथ ही, चूंकि फाइलें छोटी हैं, इसलिए फ़ाइलों को एक और उचित प्रारूप में सुधारने के लिए अपेक्षाकृत सस्ते कम्प्यूटेशनल होना चाहिए।
तो आप फ़ाइलों को किस प्रारूप में सुधारना चाहिए? अच्छा प्रश्न!
- बस उन सब को एक बड़ी ब्लॉक स्तर संकुचित अनुक्रम फ़ाइल में श्रृंखलाबद्ध सबसे चुनौतीपूर्ण लेकिन प्रदर्शन के मामले में सबसे ज्यादा फायदेमंद हो सकता है।
- दूसरा संपीड़न पूरी तरह से अनदेखा करना है और केवल उन फ़ाइलों को विस्फोट करना है, या कम से कम को संयोजित करना (आप संपीड़न के बिना प्रदर्शन हिट देखते हैं)।
- अंत में, आप ~ 100MB भाग में फ़ाइलों को ब्लॉब कर सकते हैं और फिर उन्हें gzip कर सकते हैं।
मुझे लगता है कि कुछ प्रकार के टैरबॉल लोडर को पिगबीबैंक में लिखना पूरी तरह से उचित होगा, लेकिन मैं व्यक्तिगत रूप से डेटा को अलग-अलग रखता हूं।