Mik az Advanced Hadoop MapReduce funkciók?

The basic MapReduce programming explains the work flow details. But it does not cover the actual working details inside the MapReduce programming framework. Ez a cikk elmagyarázza az adatmozgatás a MapReduce építészet és az API hívások szokta a tényleges feldolgozást. Azt is megvitatják a testreszabási technika és a funkció elsődleges alkalmazási sajátos szükségleteit.

A fejlett funkciók MapReduce leírják a végrehajtás és az alacsonyabb szintű részleteket. Normális MapReduce programozás, Csak tudni, API-k és azok használata elegendő ahhoz, hogy alkalmazásokat írni. De belső részleteit MapReduce egy must, hogy megértsék a tényleges munka részleteit és bizalmat szereznek.

Most beszéljünk fejlett funkciók a következő részekben.

Egyedi típusok (Data): Felhasználói feltéve Mapper és szűkítő, Hadoop MapReduce keret mindig gépelt adatok. Az adatok amely átmegy térképészek és Reduktorok tárolja a Java objektumok.

  • írható felület: Az írható felület az egyik legfontosabb interfészek. A tárgyak, amelyek rendezését a / a fájlokat és a hálózaton keresztül használja ezt a felületet. Hadoop is használja ezt a felületet az adatok továbbítására egy szerializált formában. Néhány osztály, amely megvalósítja Írható felület alább
  1. szöveg osztály(Ez tárolja karakterlánc adatokat)
  2. LongWritable
  3. FloatWritable
  4. IntWritable
  5. BooleanWritable

Az egyéni adattípus is készítettek végrehajtási Írható interface. Hadoop továbbítására képes bármilyen egyéni adattípus (amely illeszkedik a követelménynek) amely megvalósítja Írható felület.

A következőkben a Írható felület, amely miután két módszer readFields és írni. Az első módszer (readFields) inicializálja az adatokat az objektumot a tárolt adatokat a "a’ bináris adatfolyam. A második módszer (ír) használják, hogy rekonstruálják az objektumot a bináris stream "out". A legfontosabb szerződés az egész folyamat, hogy a sorrendben írni és olvasni a bináris adatfolyam ugyanaz.

Listing1: A következő Írható felület

nyilvános interfész Írható {

void readFields(vonatkozó adatokBELÉPŐ a);

void write(vonatkozó adatokKILÉPŐ ki);

}

Egyedi típusok (Kulcs): Az előző fejezetben már tárgyalt a egyéni adattípus találkozni alkalmazás-specifikus adatok követelmény. Ez kezeli az érték csak részben. Most mi is megvitatjuk az egyéni kulcs típusa. In Hadoop MapReduce, A szűkítő feldolgozza a kulcs rendezett sorrendben. Tehát az egyéni kulcs típusát végre kell hajtania a felületet az úgynevezett WritableComparable. A fő típusát is meg kell valósítanunk kivonat, ().

Következő mutat WritableComparable interface. Ez jelenti a Írható ami szintén Hasonló.

Listing2: kiállítás WritableComparable interface

nyilvános interfész WritableComparable<T>

kiterjeszti Írható, Hasonló<T>

Hogyan kell használni az egyéni típusok: Már tárgyalt egyedi értéket és a kulcs típus, amely lehet feldolgozni Hadoop. Most meg fogja vitatni a mechanizmus, hogy a Hadoop megérthesse. A JobConf objektum (amely meghatározza a munkát) Két módszer az úgynevezett setOutputKeyClass () és setOutputValueClass () és ezek a módszerek arra használják, hogy ellenőrizzék a érték és a kulcsfontosságú adattípusok. Ha a leképező gyárt különböző típusú, amely nem egyezik szűkítő akkor JobConf a setMapOutputKeyClass () és setMapOutputValueClass () módszereket lehet használni, hogy a bemeneti típus a várakozásoknak a szűkítő.

gyorsabb teljesítmény: Az alapértelmezett rendezési folyamat egy kicsit lassabb, mint először beolvassa a kulcs típusát egy patak, majd elemezni a byte stream (segítségével readFields() módszer) és végül hívja a összehasonlítani () módszer a kulcs osztály. A gyorsabb megoldás lenne elbírálása rendelési gombok között ellenőrzi a byte stream nélkül elemzés a teljes adathalmaz. Ennek a végrehajtására gyorsabb összehasonlítás mechanizmus, WritableComparator osztály bővíthető összehasonlítási specifikus adattípus. A következőkben az osztály nyilatkozat.

Listing3: kiállítás WritableComparator osztály

public class WritableComparator

kiterjeszti Object

végrehajtja RawComparator

Tehát az egyéni adatok és a legfontosabb típusok lehetővé teszik, hogy használja a magasabb szintű adatstruktúrát Hadoop keretrendszer. A gyakorlatban Hadoop alkalmazás egyéni adattípus az egyik legfontosabb követelmény. Így ez a funkció lehetővé teszi, hogy az egyénileg írható típusú és jelentős teljesítményjavulást.

formátumok: A InputFormat az egyik legfontosabb interfészeket, amelyek meghatározzák a bemeneti specifikációját egy MapReduce feladat. Hadoop kínál különböző típusú InputFormat Az értelmezés a különböző típusú bemenő adatok. A leggyakoribb és alapérték TextInputFormat mellyel olvasni sorokat egy szöveges fájl. Similarly SequenceFileInputFormat használt olvasni bináris formátumok.

Az alapvető feladata InputFormat az, hogy olvassa az adatokat a bemeneti fájl. A saját fejlesztésű InputFormat Az is lehetséges, mint egy alkalmazás szükségessége. alapértelmezett TextInputFormat végrehajtása a kulcs a offset a vonalat, és az érték a tartalom a vonal megszűnik ' n’ character. Egyedi végrehajtás, Az elválasztó lehet bármilyen jellegű, és a InputFormat majd elemezni ennek megfelelően.

A másik feladat az InputFormat az, hogy osszuk a bemeneti fájl (adatforrás) darabokra, amelyek a bemeneti térképének feladatok. Ezeket a fragmentumokat / szakadások vannak ágyazva a példányait InputSplit interfész. A bemenő adatok forrása bármi lehet, mint egy adatbázis tábla, xml fájl vagy egyéb fájl. Tehát az osztott fogják elvégezni kérelem alapján követelmény. A legfontosabb szempont az, hogy az osztott művelet legyen gyors és olcsó.

Miután kettévágta a fájlokat, olvasási művelet az egyedi felbomlik és kettő. A RecordReader felelős az adatok olvasása a szakadások. A RecordReader legyen hatékony ahhoz, hogy kezelni azt a tényt, hogy a szakadások nem mindig a végén szépen végén egy sor. A RecordReader mindig olvasás végéig a sor akkor is, ha keresztezi az elméleti végén egy osztott. Ez a funkció nagyon fontos, hogy ne maradjon le a rekordok, amelyek átlépték a határokat InputSplit.

  • Egyedi InputFormat: Ezen alapvető alkalmazások InputFormat közvetlenül használjuk. De az egyéni olvasni a legjobb módja az alosztályba FileInputFormat. Ez az absztrakt osztály kiválasztásánál lehet manipulálni a fájlokat, mint egy alkalmazás követelménye. Egyedi elemzés, the getRecordReader () módszer felülbírálhatóak amely visszaadja egy példánya RecordReader. This RecordReader a felelős az olvasás és elemzés.
  • Alternatív forrás (Data): A InputFormat leírja két dolog, első az adatok bemutatását a Mapper, a második pedig az adatforrás. A legtöbb implementációt alapulnak FileInputFormat, ahol az adatforrás helyi fájlrendszer HDFS (Hadoop Distributed File System).De más típusú adatforrások, Egyéni végrehajtása InputFormat szükséges. For example, NoSQL adatbázis, mint HBase biztosít TableInputFormat az adatok beolvasása során az adatbázis táblákat. Tehát az adatforrás bármi lehet, amely kezelni tudja az egyéni végrehajtás.

kimeneti formátumok: A Kimeneti formátum felelős írási művelet. Már megbeszéltük, hogy InputFormat és RecordReader felületek felelősek olvasási adatokat MapReduce programot. Az adatok feldolgozása után, Az írási művelet a tartós tárolás kezeli Kimeneti formátum és RecordWriter interfészek. Az alapértelmezett formátum TextOutputFormat amely azt írja a kulcs / érték párokat húrok a kimeneti fájl. A másik kimeneti formátum SequenceFileOutputFormat és megtartja az adatokat bináris formában. Mindezek osztályok használata ír () és readFields () módszerek Írható osztályok.

A Kimeneti formátum végrehajtását kell testre adatokat írni egy egyéni formátum. A FileOutputFormat absztrakt osztályt kell terjeszteni, hogy a testreszabás. A JobConf.setOutputFormat () módszert kell módosítani, hogy különböző egyéni formátumot.

adatparticionálás: Particionálás lehet meghatározni, mint olyan folyamat, amely meghatározza, hogy mely szűkítő például kap, amely közbenső kulcs / érték pár. Minden leképező meg kell határoznia a cél csökkent az összes kimeneti kulcs / érték párokat. A legfontosabb szempont az, hogy minden kulcsfontosságú tekintet Mapper fokon, a cél partíció ugyanaz. A teljesítmény oka mappers sosem kommunikál egymással, hogy a partíció egy adott kulcs.

A particionálás interfész által használt Hadoop rendszert, hogy megállapítsa a cél partíciót egy kulcs / érték pár. A partíciók száma meg kell egyeznie a számát csökkenteni feladatok. A MapReduce keret meghatározza a partíciók számát, ha a munka kezdődik.

A következőkben a aláírását particionálás interfész.

Listing 4: A következő particionálás interfész

nyilvános interfész particionálás<K2, V2>

kiterjeszti JobConfigurable

Következtetés: Ebben a vitában már kiterjedt a legfontosabb Hadoop MapReduce jellemzői. Ezek a funkciók hasznos testreszabási célra. Gyakorlati MapReduce alkalmazások, Az alapértelmezett végrehajtása API nem sok használat. Rather, Az egyéni jellemzők (amelyek alapja a kitett API) jelentős hatást. Mindezek testreszabási könnyen elvégezhető, ha a fogalmak egyértelmű. Remélem ez a cikk hasznos lesz megérteni a fejlett funkciók és azok végrehajtását.

 

Tagged on: , ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share