Kio estas la Hadoop MapReduce konceptoj?

Kio vi signifas de Mapo-Redukti programaron?

MapReduce estas programara modelo desegnita por pretiganta grandajn volumojn de datumo en paralelo de disiganta la laboron en aro de sendependaj taskoj.

La MapReduce programara modelo estas inspirita de praktikaj lingvoj kaj cela datumo-intensaj komputadoj. La eniga datuma formato estas apliko-specifa, Kaj estas specifita de la uzanto. La produktado estas aro de <Kerna,Valoro> Paroj. La uzanto esprimas algoritmon uzanta du funkciojn, Mapo kaj Redukti. La Mapa funkcio estas aplikita sur la eniga datumo kaj produktas liston de meza <Kerna,Valoro> Paroj. La Redukti funkcion estas aplikita al ĉiuj mezaj paroj kun la sama ŝlosilo. Ĝi tipe elfaras iun specon kombini operacion kaj produktoj nulo aŭ pli da produktadaj paroj. Fine, La produktadaj paroj estas ordigita de ilia kerna valoro. En la plej simpla formo de MapReduce programoj, La programadisto provizas nur la Mapan funkcion. Ĉiuj alia funkcio, Inkluzivanta la grupiĝon de la mezaj paroj kiu havas la saman ŝlosilon kaj la fina ordiganta, Estas provizita de la runtime.

Fazoj de MapReduce modelo

La pinta nivela unuo de laboro en MapReduce estas laborposteno. Laborposteno kutime havas mapon kaj redukti fazon, Kvankam la redukti fazon povas esti preterlasita. Ekzemple, Konsideri MapReduce laborposteno kiu kalkulas la nombron de tempoj ĉiu vorto estas uzita trans aro de dokumentoj. La mapa fazo kalkulas la vortojn en ĉiu dokumento, Tiam la redukti fazajn agregaĵojn la por-dokumenta datumo en vortaj kalkuloj spanning la tuta kolekto.

Dum la mapa fazo, La eniga datumo estas disigita en enigaj fendoj por analizo de mapaj taskoj kuranta en paralelo trans la Hadoop grapolo. De nerepago, La MapReduce kadro akiras enigan datumon de la Hadoop Distribuita Dosieran Sistemon (HDFS).

La redukti fazon Uzas rezultojn de mapaj taskoj kiel enigo al aro de paralela redukti taskojn. La redukti taskojn firmigas la datumon en finaj rezultoj. De nerepago, La MapReduce kadraj vendejoj rezultas en HDFS.

Kvankam la redukti fazon dependas sur produktado de la mapa fazo, Mapo kaj redukti pretigon ne estas nepre sinsekva. Kiu estas, Redukti taskojn povas komenci tuj kiam ajna mapa tasko kompletigas. Ĝi ne estas necesa por ĉiuj mapaj taskoj kompletigi antaŭ ol iu ajn reduktas taskon povas komenci.

MapReduce funkcias sur kerna-valoraj paroj. Conceptually, MapReduce laborposteno prenas aron de eniga ŝlosilo-valoraj paroj kaj produktas aron de produktada ŝlosilo-valoraj paroj de pasanta la datumon tra mapo kaj reduktas funkciojn. La mapaj taskoj produktas mezan aron de kerna-valoro parigas ke la redukti taskojn uzas kiel enigo.

La ŝlosiloj en la mapaj produktadaj paroj devas ne esti unika. Inter la mapa pretigo kaj la redukti pretigon, intermiksi paŝon ordigas ĉiuj mapa produktado valoroj kun la sama ŝlosilo en ununura redukti enigon (Kerna, Valoro-listo) Paro, Kie la ‘valoro’ Estas listo de ĉiuj valoroj dividanta la saman ŝlosilon. Tiel, La enigo al redukti taskon estas efektive aro de (Kerna, Valoro-listo) Paroj.

Kvankam ĉiu aro de kerna-valoraj paroj estas homogeneous, La kerna-valoraj paroj en ĉiu paŝo devas ne havi la saman tipon. Ekzemple, La kerna-valoraj paroj en la eniga aro (KV1) Povas esti (Ŝnuro, Ŝnuro) Paroj, Kun la mapa fazo produktanta (Ŝnuro, Integralo) Paroj kiel mezaj rezultoj (KV2), Kaj la redukti fazon produktanta (Integralo, Ŝnuro) Paroj por la finaj rezultoj (KV3).

La ŝlosiloj en la mapaj produktadaj paroj devas ne esti unika. Inter la mapa pretigo kaj la redukti pretigon, intermiksi paŝon ordigas ĉiuj mapa produktado valoroj kun la sama ŝlosilo en ununura redukti enigon (Kerna, Valoro-listo) Paro, Kie la ‘valoro’ Estas listo de ĉiuj valoroj dividanta la saman ŝlosilon. Tiel, La enigo al redukti taskon estas efektive aro de (Kerna, Valoro-listo) Paroj.

Ekzemplo montranta MapReduce konceptoj

La ekzemplo montras bazan MapReduce koncepto de kalkulanta la nombron de okazo de ĉiu vorto en aro de tekstaj dosieroj.

La MapReduce eniga datumo estas disigita en enigaj fendoj, Kaj la fendoj estas cetere disigita en eniga ŝlosilo-valoraj paroj. En ĉi tiu ekzemplo, La eniga datuma aro estas la du dokumentoj, document1 kaj document2. La InputFormat subklaso disigas la datumon fiksita en unu fendo por dokumento, Por totalo de 2 Fendoj:

Noto: La MapReduce kadro disigas la enigan datumon fiksita en blokoj vokita fendojn uzanta la org.Apache.Hadoop.Mapreduce.InputFormat subklaso provizita en la laborpostena konfiguracio. Fendoj estas kreita de la loka Laborpostena Kliento kaj inkluzivita en la laborpostena informo faris haveblan al la Laborpostena Spuristo. La JobTracker kreas mapan taskon por ĉiu fendo. Ĉiu mapa tasko uzas RecordReader provizita de la InputFormat subklaso transformi la fendon en eniga ŝlosilo-valoraj paroj.

A (Linia nombro, Teksto) Kerna-valora paro estas produktita por ĉiu linio en eniga dokumento. La mapa funkcio forĵetas la linian nombron kaj produktas por-linio (Vorto, Kalkulo) Paro por ĉiu vorto en la eniga linio. La redukti fazajn produktojn (Vorto, Kalkulo) Parigas reprezentanta aggregated vortaj kalkuloj trans ĉiuj la enigaj dokumentoj. Donita la enigan datumon montrita la mapon-redukti progresion por la ekzempla laborposteno estas:

La produktado de la mapa fazo enhavas multoblan kerna-valoraj paroj kun la sama ŝlosilo: La ‘avenoj’ Kaj ‘manĝi’ Ŝlosiloj aperas dufoje. Memori ke la MapReduce kadro firmigas ĉiuj valoroj kun la sama ŝlosilo antaŭ eniranta la redukti fazon, Do la enigo redukti estas efektive (Kerna, Valoroj) Paroj. Sekve, La plena progresio de mapa produktado, Trae redukti, Al finaj rezultoj estas montrita sur.

MapReduce Job Viva Ciklo

Sekvanta estas la viva ciklo de tipa MapReduce laborposteno kaj la roloj de la primaraj aktoroj.La plena viva ciklo estas pli kompleksa do ĉi tie ni koncentros sur la primaraj eroj.

La Hadoop konfiguracio povas esti farita en malsamaj vojoj sed la baza konfiguracio konsistas de la sekvantaro.

  • Ununura mastra nodo kuranta Job Spuristo
  • Multoblaj laboristaj nodoj kuranta Taskan Spuriston

Sekvanta estas la vivaj ciklaj eroj de MapReduce laborposteno.

  • Loka Laborpostena kliento: La loka laborpostena Kliento preparas la laborpostenon por propono kaj donas ĝin ekstere al la Laborpostena Spuristo.
  • Job Spuristo: La Laborpostena Spuristo enhorarigas la laborpostenon kaj distribuas la mapan laboron inter la Taskaj Spuristoj por paralela pretigo.
  • Taska Spuristo: Ĉiu Taska Spuristo naskas Mapan Taskon. La Laborpostena Spuristo ricevas progresan informon de la Taskaj Spuristoj.

Unufoje mapi rezultojn estas havebla, La Laborpostena Spuristo distribuas la redukti laboron inter la Taskaj Spuristoj por paralela pretigo.

Ĉiu Taska Spuristo naskas Redukti Taskon elfari la laboron. La Laborpostena Spuristo ricevas progresan informon de la Taskaj Spuristoj.

Ĉiuj mapaj taskoj ne devas kompletigi antaŭe redukti taskojn komencas kuranta. Redukti taskojn povas komenci tuj kiam mapi taskojn komencas kompletiganta. Tiel, La mapo kaj redukti paŝojn ofte overlap.

Funkcio de malsamaj eroj en MapReduce laborposteno

Job Kliento: Job kliento elfaras la sekvantajn taskojn

  • Konfirmas la laborpostenan konfiguracion
  • Produktas la enigajn fendojn. Tio ĉi estas resume fendanta la enigan laborpostenon en blokoj
  • Kopias la laborpostenajn rimedojn (Konfiguracio, Laborpostena BOKALO dosiero, Enigaj fendoj) Al komuna loko, Kiel HDFSa adresaro, Kie ĝi estas alirebla al la Laborpostena Spuristo kaj Taskaj Spuristoj
  • Submetiĝas la laborpostenon al la Laborpostena Spuristo

Job Spuristo: Job Spuristo elfaras la sekvantajn taskojn

  • Venigas enigajn fendojn de la komuna loko kie la Laborpostena Kliento lokis la informon
  • Kreas mapan taskon por ĉiu fendo
  • Asignas ĉiun mapan taskon al Taska Spuristo (Laborista nodo)

Post kiam la mapa tasko estas kompleta, Job Spuristo faras la sekvantajn taskojn

  • Kreas reduktas taskojn ĝis la maksimumo ebligita de la laborpostena konfiguracio.
  • Asignas ĉiun mapan rezultan septon al redukti taskon.
  • Asignas ĉiun reduktas taskon al Taska Spuristo.

Taska Spuristo: Taska Spuristo administras la taskojn de unu laborista nodo kaj raporta statuso al la Laborpostena Spuristo.

Taska Spuristo faras la sekvantajn taskojn kiam mapo aŭ redukti taskon estas asignita al ĝi

  • Venigas laborpostenon provizas loke
  • Naskas infanan JVM sur la laborista nodo efektivigi la mapon aŭ redukti taskon
  • Raporta statuso al la Laborpostena Spuristo

Elpuriganta Mapon Reduktas

Hadoop tenas ŝtipojn de gravaj eventoj dum programa ekzekuto. De nerepago, Ĉi tiuj estas entenita en la ŝtipoj/ subdirectory de la hadoop-versia/ adresaro kie vi kuras Hadoop de. Ŝtipaj dosieroj estas nomita hadoop-salutnomo-servo-hostname.Ŝtipo. La plej lastatempa datumo estas en la .Ŝtipa dosiero; Pli malnovaj ŝtipoj havas ilian daton almetita al ili. La salutnomo en la ŝtipo filename plu-gvidas al la salutnomo sub kiu Hadoop estis komencita — Tio ĉi ne estas nepre la sama salutnomo vi estas uzanta kuri programojn. La serva nomo plu-gvidas al kiu de la plura Hadoop programoj estas skribantaj la ŝtipon; Ĉi tiuj povas esti jobtracker, Namenode, Datanode, Secondarynamenode, Aŭ tasktracker. Ĉiuj de ĉi tiuj estas gravaj por elpuriganta tutan Hadoop instalaĵo. Sed por individuaj programoj, La tasktracker ŝtipoj estos la plej rilataj. Ajnaj esceptoj ĵetita de via programo estos registrita en la tasktracker ŝtipoj.

La ŝtipa adresaro ankaŭ havos subdirectory vokis userlogs. Ĉi tie estas alia subdirectory por ĉiu taska kuro. Ĉiu tasko registras ĝia stdout kaj stderr al du dosieroj en ĉi tiu adresaro. Noti ke sur multi-nodo Hadoop grapolo, Ĉi tiuj ŝtipoj ne estas centrally aggregated — Vi devus kontroli la ŝtipojn de ĉiu TaskNode/userlogs/ adresaro por ilia produktado.

Elpuriganta en la distribuita fikson estas komplikita kaj postulas arbohakanta en pluraj maŝinoj aliri ŝtipan datumon. Se ebla, Programoj devus esti unuo elprovita de kuranta Hadoop loke. La defaŭlta konfiguracio deplojiĝita de Hadoop kuroj en “Ununura okazo” Maniero, Kie la tuta MapReduce programo estas kurita en la sama okazo de Java kiel vokita JobClient.RunJob(). Uzanta debugger kiel Eklipso, Vi tiam povas fiksita breakpoints en la mapo() Aŭ redukti() Metodoj eltrovi viajn cimojn.

Estas reduktas laborpostenon deviga?

Kelkaj laborpostenoj povas kompletigi ĉiuj ilia laboro dum la mapa fazo. DO la Laborposteno povas esti mapo nura laborposteno. Halti laborpostenon post la mapo kompletigas, Fiksi la nombron de redukti taskojn al nulo.

Konkludo

Ĉi tiu kapsulo priskribis la MapReduce ekzekuta platformo ĉe la koro de la Hadoop sistemo. De uzanta MapReduce, Alta grado de parallelism povas esti atingita de aplikoj. La MapReduce kadro provizas altan gradon de misfara toleremo por aplikoj kuranta sur ĝi de limiganta la komunikadon kiu povas okazi inter nodoj.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share