Kiel Hadoop Alfluanta laborojn?

Superrigardo: Hadoop alfluanta estas unu el la plej grava ilo en Hadoop disdonado. La Alfluanta fasado de Hadoop permesas vin skribi Mapon-Redukti programon en ajna lingvo de via elekto, Kiu povas labori kun STDIN kaj STDOUT. Tiel, Alfluanta ankaŭ povas esti difinita kiel kolektiva Hadoop API kiu permesas Mapon-Redukti programojn esti skribita en preskaŭ ajna lingvo. En ĉi tiu alproksimiĝo Mapper ricevas enigon sur STDIN kaj emanigi eligita sur STDOUT. Kvankam Hadoop estas skribita en Java kaj ĝi estas la ofta lingvo por Mapo-Redukti laborpostenon, La Alfluanta API donas la flekseblecon skribi Mapon-Redukti laborpostenon en ajna lingvo.

En ĉi tiu artikolo mi diskutos pri la Hadoop Alfluanta APIs.

Enkonduko: Hadoop Alfluanta estas kolektiva API kiu permesas skribanta Mapper kaj Reduktas en ajna lingvo. Sed la baza koncepto restas la saman. Mappers kaj Reducers ricevas ilian enigon kaj eligita sur stdin kaj stdout kiel (Kerna, Valoro) Paroj. Apache Hadoop uzoj alfluas kiel por UNIXa normo inter via apliko kaj Hadoop sistemo. Alfluanta estas la plej bona kapabla por teksta pretigo. La datuma vido estas linio oriented kaj pretigita kiel kerna/valora paro apartigita de ‘klapeto' karaktero. La programo legas ĉiun linion kaj pretigas ĝin kiel por postulo.

Laboranta kun Hadoop Riveretoj: En ajna Mapo-Redukti laborpostenon, Ni havas enigon kaj eligita kiel kernaj/valoraj paroj. La sama koncepto estas vera por Alfluanta API. En Alfluanta, enigo kaj produktado estas ĉiam reprezentita kiel teksto. La (Kerna, Valoro) Enigaj paroj estas skribita sur stdin por Mapper kaj Reducer. La ‘klapeto’ Karaktero estas uzita apartigi kernan kaj valoro. La Alfluanta programo uzas la ‘klapeto’ Karaktero fendi linion en kerna/valora paro. La sama procedo estas sekvita por produktado. La Alfluanta programo skribas ilian produktadon sur stdout sekvanta la saman formaton kiel menciita sub.

Key1 t value1 n

Key2 t value2 n

Key3 t value3 n

En ĉi tiu procezo ĉiu linio enhavas nur unu kernan/valoran paron. Do la enigo al la reducer estas ordigita por ke ĉiuj la samaj ŝlosiloj estas lokita apudan al unu alia.

ajna programo aŭ ilo povas esti uzita kiel Mapper kaj Reducer se ili estas kapablaj pritrakti enigon en teksta formato kiel priskribita sur. Aliaj skriboj kiel perl, python aŭ batego ankaŭ povas esti uzita por ĉi tiu celo, Provizis ĉiuj la nodoj estas havanta interpretiston kompreni la lingvon.

Ekzekutaj paŝoj: Hadoop Alfluanta ilon permesas ajnan skribon aŭ executable labori kiel Mapper/Reducer provizis ilin povas labori kun stdin kaj stdout. En ĉi tiu sekcio mi priskribos la efektivigajn paŝojn de la Alfluanta ilo. Mi supozos du ekzemplajn programojn labori kiel Mapper kaj Reducer.

  • Unue, Lasi nin kontroli la sekvantan komandon kuri Alfluanta laborpostenon. La komando ne havas ajnajn argumentojn do ĝi montros malsamajn uzadajn elektojn kiel montrita sub.
Streaming command

Alfluanta komandon

Image1: Montranta Alfluanta komandon kaj uzadon

  • Nun lasita nin supozi StreamMapProgram Kaj StreamReduceProgram Laboros kiel Mapper kaj Reducer. Ĉi tiuj programoj povas esti skriboj, executables aŭ iu ajn alia ero kapabla preni enigon de stdin kaj produkta produktado ĉe stdout. La sekvanta komando montros kiel la Mapper kaj Reducer argumentoj povas esti kombinita kun la Alfluanta komando.
Input Output

@Input Eligita

Image2: Montranta enigon kaj produktadaj argumentoj

Ĝi estas supozita ke la Mapper kaj Reducer programoj estas donaco en ĉiuj la nodoj antaŭ ol komencanta la Alfluantan laborpostenon.

  • Unue, La Mapper tasko transformas la enigon en linioj kaj loki ĝin al la stdin de la procezo. Post kiam tio ĉi la Mapper kolektas la produktadon de la procezo de stdout kaj transformas ĝin en kerna/valora paro. Ĉi tiuj kernaj/valoraj paroj estas la reala produktado de la Mapper tasko. La ŝlosilo estas la valora kasregistrilo la unua ‘klapeto’ karaktero kaj la restanta parto de la linio estas konsiderita kiel valoro. Se estas neniu ‘klapeto’ Karaktero tiam la totala linio estas konsiderita kiel ŝlosilo kun valoro kiel ‘null’.
  • La sama procezo estas sekvita kiam la reducer taskaj kuroj. Unue ĝi transformas la kernajn/valorajn parojn en linioj kaj metita ĝin en la stdin de la procezo. Tiam la reducer kolektas la linian produktadon de la stdout de la procezo kaj prepari kernajn/valorajn parojn kiel la fina produktado de la redukti laborpostenon. La kerna/valoro estas apartigita la saman vojon sekvanta la unuan ‘klapeto’ Karaktero.

Sekvanta skemon montras la procezan fluon en Alfluanta Job:

Process flow

Proceza fluo

Image3: Alfluanta procezan fluon

Desegna Diferenco inter Java API kaj Alfluanta: Estas desegna diferenco inter la Java MapReduce API kaj Hadoop Alfluanta. La diferenco estas plejparte en la pretiga efektivigo. En la norma Java API, La mekanismo estas pretigi ĉiun rekordon unu samtempe. Do la kadro estas efektivigita voki la mapon () Metodo (Sur via Mapper) Por ĉiu rekordo. Sed kun la Alfluanta API, La mapa programo povas kontroli la pretigon de enigo. Ĝi ankaŭ povas legita kaj pretigi multoblajn liniojn samtempe kiel ĝi povas kontroli la legadan mekanismon. En Java la sama povas esti efektivigita sed kun la helpo de kelkaj alia mekanismo kiel uzanta okazon variables amasigi multoblajn liniojn kaj tiam pretigi ĝin.

Alfluanta Komandojn: La Hadoop Alfluanta API subtenas ambaŭ alfluanta kaj kolektivaj komandaj elektoj. Kelkaj gravaj alfluantaj komandaj elektoj estas enlistigita sub.

#Ne Parametro Postulita/Laŭvolan Priskribo
1 -@Input directoryname aŭ filename Postulita Eniga loko por Mapper.
2 -Eligi directoryname Postulita Eligita lokon por Reducer.
3 -Mapper executable aŭ JavaClassName Postulita Mapper Executable.
4 -Reducer executable aŭ JavaClassName Postulita Reducer Executable.
5 -Registri filename Laŭvola Indikas la mapper, Reducer, Kaj combiner executables havebla sur la loka komputi nodojn.
6 -Inputformat JavaClassName Laŭvola Tio ĉi estas la provizita Klason kiu devus reveni kernajn/valorajn parojn de Teksta klaso. TextInputFormat estas la defaŭlta valoro.
7 -Outputformat JavaClassName Laŭvola Tio ĉi estas la provizita Klason kiu devus reveni kernajn/valorajn parojn de Teksta klaso. TextOutputformat estas la defaŭlta valoro.

Suplementa konfiguracio variables: En alfluanta laborposteno suplementa konfiguracio variables povas esti menciita kun –D elekto (“-D <Nemoveblaĵo>=<Valoro>”).

  • Sekvanta komandon povas esti uzita ŝanĝi lokan temp adresaro

-D dfs.Datumo.Dir=/tmp

  • Sekvanta komandon povas esti uzita specifi suplementan loka temp adresaroj

-D mapred.Tieulo.Dir=/tmp/loka/streamingjob

  • Sekvanta komandon povas esti uzita specifi Mapon-Nura laborposteno

-D mapred.Reduktas.Taskoj=0

  • Sekvanta komandon povas esti uzita specifi nombron de reducers

-D mapred.Reduktas.Taskoj=4

  • Sekvanta komandon povas esti uzita specifi linian fendon elektoj

-D rivereto.Mapo.Produktado.Kampo.Apartigilo=. \

-D rivereto.Num.Mapo.Produktado.Ŝlosilo.Kampoj=6

Konkludo: Apache Hadoop kadro kaj MapReduce programaro estas la industria normo por pretiganta grandan volumon de datumo. La MapReduce programara kadro estas uzita fari la realan pretigon kaj logikan efektivigon. La Java MapReduce API estas la norma elekto por skribanta MapReduce programo. Sed Hadoop Alfluanta API provizas elektojn skribi MapReduce laborposteno en aliaj lingvoj. Tio ĉi estas unu el la plej bona fleksebleco havebla al MapReduce programadistoj havanta sperton en aliaj lingvoj krom Java. Even executables ankaŭ povas esti uzita kun Alfluanta API labori kiel MapReduce laborposteno. La nura kondiĉo estas ke la programo/executable devus esti kapabla preni enigon de STDIN kaj produkta produktado ĉe STDOUT.

?

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share