2013-06-08 4 views
5

मेरे पास मैड्रिडस प्रोग्राम में इनपुट के रूप में एचडीएफएस में संग्रहीत 1 एमबी की 2 टेक्स्ट फाइलें हैं। निम्नलिखित पंक्ति में, हम मानचित्र() के लिए इनपुट जोड़ी मानते हैं।मानचित्र() के लिए LongWritable कुंजी इनपुट क्या है?

class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { 

यहां LongWritable कुंजी क्या है? यह MapReduce द्वारा कैसे माना जाता है? क्या इनपुट फ़ाइल में पाठ की प्रत्येक पंक्ति में कुंजी या एकल कुंजी फ़ाइल में पूर्ण पाठ के लिए माना जाता है (यानी, एक समय में सभी पंक्तियां)?

उत्तर

-1

यह बाइट लाइन की ऑफसेट है या आप कह सकते हैं लाइन नंबर

+1

आपको अपने उत्तर का 'या' भाग छोड़ना चाहिए था। ऑफ़सेट लाइन नंबर नहीं है। यह लाइन की बाइट स्थिति है। – Tariq

+0

मुझे यह नहीं मिल रहा है। लाइन की ऑफसेट कैसे उस रेखा की संख्या के समान होती है? मैं आपको यह समझने में मदद करने के लिए अनुरोध करता हूं। – Tariq

+0

@ChrisGerken आप गलत हैं – slater

6

1- यहाँ LongWritable कुंजी रेखा है जो फ़ाइल में है कि रेखा की position और not लाइन नंबर का मतलब है की offset है। इन दोनों के बीच a lot अंतर है।

2- यह not assumed MapReduce ढांचे द्वारा है। यह InputFormat का कर्तव्य है जिसका उपयोग आप एमआर नौकरी में करने के लिए कर रहे हैं। डिफ़ॉल्ट TextInputFormat है जो आपके मामले में कुंजी के रूप में लाइन के बाइट ऑफ़सेट देता है।

3- ठीक है, यह फिर से आपके इनपुटफॉर्मैट पर निर्भर करता है। यदि आप TextInputFormat का उपयोग कर रहे हैं तो प्रत्येक पंक्ति को ऑफसेट के साथ कुंजी के रूप में माना जाएगा। लेकिन आपके पास अपना स्वयं का कस्टम इनपुटफॉर्मैट हो सकता है जो आपको पूरी फ़ाइल के लिए केवल एक कुंजी और उस फ़ाइल की सभी पंक्तियों को मूल्य के रूप में पूरी तरह से दे सकता है।

+1

स्थिति स्पष्ट रूप से संख्या नहीं है। क्या मेरे पास डाउनवोट का कारण हो सकता है? आईएमएचओ, मैप्रिडस के बारे में मैंने जो सीखा है, उसके आधार पर यह सही परिभाषा है। भी, क्या आप मुझे उस दस्तावेज़ीकरण को इंगित कर सकते हैं जिसका आप उल्लेख कर रहे हैं। मेरे लिए वास्तव में वह सराहनीय होगा। धन्यवाद। – Tariq

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