Hadoop Frage
-
Einen wunderschönen Tag liebe Community.
Ich soll ein Projekt mit Hadoop realisieren, bin aber noch etwas unsicher.
Ich habe als Eingabe eine (oder mehrere) Textdateien.Der Beginn eines neuen Datensatz innerhalb einer solchen Datei ist durch einen Delimiter (">").
Alles, was in der selben Zeile wie dieses Trennzeichen steht, ist als Kommentar zu betrachtenEIn kleines Beispiel:
> Toller Kommentar
fihwifhsdf eihfwe rihiwe hfiwhfihfifhwif fwehf ishfifdsiü
gsdhgusahü
> Sinnloses Geschwafel
fhsdifh iwerthf8whfwhfsdhfiwehfih wefihweifhweifhwe
ifhdsiofhggfdihffqeewfgew wfwefewfsdfsdfddf
Diese Datei bestünde aus 3 Datensätzen.
Meine Frage ist nun, wie ich meine Datei(en) erfolgreich in solche Datensätze aufteilen kann.
Nun zu dem, was ich bisher erarbeitet habe, aber ich mir nicht sicher bin:
Es gibt InputFormat und davon abgeleitet das Interface FileinputFormat.
Hiervon abgeleitet gibt es dann TextInputFormat. Dieses arbeitet jedoch zeilenweise, was ich leider nicht gebrauchen kann.
Ich würde daraus folgern, dass ich mein eigenes FileInputFormat schreiben muss.
Dafür muss ich dann die Funktion
InputSplit[] get Splits(JobConf job, int numSplits); Recordreader<K,V> getRecordReader(InputSplit split, JobConf job, Reporter reporter)
AN dieser Stelle mangelt es mir leider an Material, ich finde kein einfaches Beispiel, was das vorführt.
Meist finde ich nur so was:
54 job.setInputFormatClass(TextInputFormat.class); 55 job.setOutputFormatClass(TextOutputFormat.class); 56 57 FileInputFormat.addInputPath(job, new Path(args[0])); 58 FileOutputFormat.setOutputPath(job, new Path(args[1]));
Was ich nun wissen möchte:
Sind meine Überlegungen bisher korrekt?
Muss ich ausser einem eigenen InputFormat noch etwas machen, damit Mapper und Reducer funktionieren?Herzlichen Dank im Voraus