In onze vorige Hadoop tut o rial , hebben we u een gedetailleerde beschrijving gegeven van InputFormat. In deze blog gaan we het hebben over het Hadoop OutputFormat.
We zullen bespreken wat OutputFormat is in Hadoop, wat is RecordWritter in MapReduce OutputFormat. We zullen ook de soorten OutputFormat in MapReduce behandelen.
Inleiding tot Hadoop OutputFormat
Uitvoerformaat controleer de uitvoerspecificatie voor uitvoering van de taak Map-Reduce. Het beschrijft hoe de RecordWriter-implementatie wordt gebruikt om uitvoer naar uitvoerbestanden te schrijven.
Voordat we beginnen met OutputFormat, laten we eerst leren wat RecordWriter is en wat het werk is van RecordWriter in MapReduce?
1. RecordWriter in Hadoop MapReduce
Zoals we weten, Reducer kost Mappers tussenuitgang als ingang. Vervolgens voert het een reductiefunctie op hen uit om uitvoer te genereren die weer nul of meer sleutel-waardeparen is.
Dus, RecordWriter in MapReduce-taakuitvoering schrijft deze uitvoersleutel-waardeparen van de Reducer-fase naar uitvoerbestanden.
2. Hadoop-uitvoerindeling
Van bovenaf is het duidelijk dat RecordWriter uitvoergegevens uit Reducer haalt. Vervolgens schrijft het deze gegevens naar uitvoerbestanden. OutputFormat bepaalt de manier waarop deze uitvoersleutel-waardeparen door RecordWriter in uitvoerbestanden worden geschreven.
De functies OutputFormat en InputFormat zijn vergelijkbaar. OutputFormat-instanties worden gebruikt om te schrijven naar bestanden op de lokale schijf of in HDFS. In MapReduce taakuitvoering op basis van outputspecificatie;
- Hadoop MapReduce-taak controleert of de uitvoermap nog niet aanwezig is.
- OutputFormat in MapReduce-taak biedt de RecordWriter-implementatie die moet worden gebruikt om de uitvoerbestanden van de taak te schrijven. Vervolgens worden de uitvoerbestanden opgeslagen in een bestandssysteem.
Het framework gebruikt FileOutputFormat.setOutputPath() methode om de uitvoermap in te stellen.
Typen uitvoerformaten in MapReduce
Er zijn verschillende soorten OutputFormat die als volgt zijn:
1. TextOutputFormat
De standaard OutputFormat is TextOutputFormat. Het schrijft (sleutel, waarde) paren op individuele regels tekstbestanden. De sleutels en waarden kunnen van elk type zijn. De reden hierachter is dat TextOutputFormat ze in string verandert door toString() . aan te roepen erop.
Het scheidt sleutel/waarde-paar door een tab-teken. Door MapReduce.output.textoutputformat.separator . te gebruiken eigenschap kunnen we deze ook wijzigen.
KeyValueTextOutputFormat wordt ook gebruikt voor het lezen van deze uitvoertekstbestanden.
2. SequenceFileOutputFormat
Dit OutputFormat schrijft sequentiebestanden voor zijn uitvoer. SequenceFileInputFormat is ook een middelgroot formaat voor gebruik tussen MapReduce-taken. Het serialiseert willekeurige datatypes naar het bestand.
En de bijbehorende SequenceFileInputFormat zal het bestand deserialiseren in dezelfde typen. Het presenteert de gegevens aan de volgende mapper op dezelfde manier als het werd uitgestoten door het vorige verloopstuk. Statische methoden regelen ook de compressie.
3. SequenceFileAsBinaryOutputFormat
Het is een andere variant van SequenceFileInputFormat. Het schrijft ook sleutels en waarden naar het sequentiebestand in binair formaat.
4. MapFileOutputFormat
Het is een andere vorm van FileOutputFormat. Het schrijft ook uitvoer als kaartbestanden. Het framework voegt op volgorde een sleutel toe aan een MapFile. We moeten er dus voor zorgen dat het verloopstuk de sleutels in gesorteerde volgorde afgeeft.
5. Meerdere uitgangen
Met dit formaat kunnen gegevens worden geschreven naar bestanden waarvan de namen zijn afgeleid van de uitvoersleutels en waarden.
6. LazyOutputFormat
In MapReduce-taakuitvoering maakt FileOutputFormat soms uitvoerbestanden, zelfs als ze leeg zijn. LazyOutputFormat is ook een wrapper OutputFormat.
7. DBOutputFormat
Het is het OutputFormat voor schrijven naar relationele databases en HBase. Dit formaat stuurt ook de reduceeruitvoer naar een SQL-tabel. Het accepteert ook sleutel-waardeparen. Hierin heeft de sleutel een type dat DBwritable uitbreidt.
Conclusie
Daarom worden afhankelijk van de behoefte verschillende OutputFormats gebruikt. Ik hoop dat je deze blog nuttig vindt. Als je vragen hebt over Hadoop OutputFormat, laat dan een opmerking achter in een opmerkingenveld. We lossen ze graag op.