sql >> Database >  >> NoSQL >> HBase

Wat is Hadoop OutputFormat in MapReduce?

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.


  1. MongoDB - admin-gebruiker niet geautoriseerd

  2. Hoge beschikbaarheid (Multi-AZ) voor operationele CDP-database

  3. Automatisch verwijzende objecten verwijderen bij verwijdering in MongoDB

  4. redis cluster reshard [ERR] Aanroepen van MIGRATE:ERR Syntaxisfout