2014-10-06 13 views
9

मैं एक मैपरेडस प्रोग्राम लिखने की कोशिश कर रहा हूं जो एक इनपुट फ़ाइल पढ़ सकता है और आउटपुट को दूसरी टेक्स्ट फ़ाइल में लिख सकता है। मैं इसके लिए BufferedReader कक्षा का उपयोग करने की योजना बना रहा हूं। लेकिन मुझे वास्तव में पता नहीं है कि मैपरेडस प्रोग्राम में इसका उपयोग कैसे किया जाए।हडोप मानचित्र एक टेक्स्ट फ़ाइल को पढ़ें

क्या कोई मुझे इसका कोड स्निपेट दे सकता है?

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

अग्रिम धन्यवाद।

+0

अब तक आपने जो कोशिश की है? और आप जो कार्यान्वित करने की कोशिश कर रहे हैं। कृपया विशिष्ट रहें। क्या आप उपयोगकर्ता से इनपुट फ़ाइल पढ़ना चाहते हैं और आउटपुट को एचडीएफएस में लिखना चाहते हैं? क्या आप थोड़ा और समझा सकते हैं। –

+0

@ श्रीवीनी ठीक है यह यहाँ है। मैं BufferedReader का उपयोग कर एक टेक्स्ट फ़ाइल पढ़ना चाहता हूँ। और मैं आउटपुट को या तो एचडीएफएस (अधिमानतः) लिखना चाहता हूं या आउटपुट को दूसरी टेक्स्ट फ़ाइल में लिखना चाहता हूं। मैंने अभी तक कुछ भी कोशिश नहीं की है। लेकिन यही वह है जो मैं मूल रूप से करना चाहता हूं। मैंने नमूना कोड स्निपेट के लिए इंटरनेट पर देखा है लेकिन मेरे प्रश्न का उत्तर क्या नहीं मिला। क्या आप यहां मेरी मदद कर सकते हैं? – user2201650

+0

एक और स्पष्टीकरण क्या आप एचडीएफएस से टेक्स्ट फाइल पढ़ना चाहते हैं? –

उत्तर

7

कोड नीचे HDFS से एक फ़ाइल को पढ़ने और सांत्वना

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem; 
import org.apache.hadoop.fs.Path; 

public class Cat{ 
    public static void main (String [] args) throws Exception{ 
     try{ 
      Path pt=new Path("hdfs:/path/to/file");//Location of file in HDFS 
      FileSystem fs = FileSystem.get(new Configuration()); 
      BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt))); 
      String line; 
      line=br.readLine(); 
      while (line != null){ 
       System.out.println(line); 
       line=br.readLine(); 
      } 
     }catch(Exception e){ 
     } 
    } 
} 

संपादित

ड्राइवर

public class ReadFile { 

    public static void main(String[] args) throws Exception { 
     Configuration conf = new Configuration(); 
     Job job = new Job(conf, "Read a File"); 


     FileSystem fs = FileSystem.get(conf); 
     job.setOutputKeyClass(Text.class); 
     job.setOutputValueClass(IntWritable.class); 
     if (fs.exists(new Path(args[1]))) 
      fs.delete(new Path(args[1]), true); 
     job.setMapperClass(Map.class); 
     job.setReducerClass(Reduce.class); 

     job.setInputFormatClass(TextInputFormat.class); 
     job.setOutputFormatClass(TextOutputFormat.class); 

     FileInputFormat.addInputPath(job, new Path(args[0])); 
     FileOutputFormat.setOutputPath(job, new Path(args[1])); 
     job.setJarByClass(ReadFile.class);  
     job.waitForCompletion(true); 
    } 

} 

मैपर

public class Map extends Mapper<LongWritable, Text, Text, IntWritable> { 

    public void setup(Context context) throws IOException{ 
     Path pt=new Path("hdfs:/path/to/file");//Location of file in HDFS 
     FileSystem fs = FileSystem.get(new Configuration()); 
     BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt))); 
     String line; 
     line=br.readLine(); 
     while (line != null){ 
      System.out.println(line); 
      line=br.readLine(); 
     } 
    } 
    public void map(LongWritable key, Text value, Context context) 
      throws IOException, InterruptedException { 
     //as your wish 
     } 
    } 
} 
में सामग्री प्रदर्शित करने के लिए आप में मदद करता है

उपरोक्त कोड आपको एचडीएफएस से एक टेक्स्ट फ़ाइल पढ़ने में मदद करता है।

+0

के साथ अद्यतन कोड स्निपेट के लिए धन्यवाद। लेकिन मैंने कोशिश की। मैं चाहता हूं कि एक नक्शा-शैली शैली कार्यक्रम में एक टेक्स्ट फ़ाइल को पढ़ना है। यानी, मैपर और रेड्यूसर कक्षाओं का उपयोग करना। – user2201650

+0

क्या आप जानते हैं कि मानचित्र में टेक्स्ट फ़ाइल को कैसे पढ़ा जाए-शैली कार्यक्रम को कम करें? क्योंकि मुझे यही करना है। अगर आप मुझे बता सकते हैं कि यह कैसे करना है तो यह बहुत मददगार होगा। आपका अग्रिम में ही बहुत धन्यवाद! – user2201650

+0

@ user2201650: मेरा संपादन –

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