Ein einfaches Grep-Programm von Hadoop, das Zeilen mit bestimmten Zeichenfolgen aus Dokumenten extrahieren kann
Kopieren Sie den Codecode wie folgt:
/*
* Ein einfaches grep-Programm, das Zeilen mit bestimmten Zeichenfolgen aus Dokumenten extrahieren kann
*/
öffentliche Klasse grep erweitert konfiguriertes Implementierungstool{
öffentliche statische Klasse grepMap erweitert Mapper<LongWritable, Text, Text,NullWritable>{
public void map(LongWritable line,Text value,Context context) löst IOException, InterruptedException{
// Parameter über die Konfiguration abrufen
String str = context.getConfiguration().get("grep");
if(value.toString().contains(str)){
context.write(value, NullWritable.get());
}
}
}
@Override
public int run(String[] args) löst eine Ausnahme aus {
if(args.length!=3){
System.out.println("ERROR");
System.exit(1);
}
Konfigurationskonfiguration = getConf();
//Parameter übergeben
Configuration.set("grep", args[2]);
Job job = new Job(configuration,"grep");
job.setJarByClass(grep.class);
job.setMapperClass(grepMap.class);
job.setNumReduceTasks(0);
job.setMapOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
Pfad in = neuer Pfad(args[0]);
Path out = new Path(args[1]);
FileSystem fileSystem = out.getFileSystem(configuration);
if(fileSystem.exists(out))
fileSystem.delete(out, true);
FileInputFormat.addInputPath(job, in);
FileOutputFormat.setOutputPath(job, out);
System.exit(job.waitForCompletion(true)?0:1);
0 zurückgeben;
}