What are the Hadoop MapReduce concepts?

What do you mean by Map-Reduce programming?

MapReduce is a programming model designed for processing large volumes of data in parallel by dividing the work into a set of independent tasks.

Modelul de programare MapReduce este inspirat de limbaje funcționale și obiective calcule intensive de date. Formatul de date de intrare este specifică aplicației, și este specificată de către utilizator. Ieșirea este un set de <cheie,valoare> perechi. Utilizatorul exprimă un algoritm folosind două funcții, Harta si Reducerea. Funcția Map este aplicată pe datele de intrare și produce o listă de intermediar <cheie,valoare> perechi. Funcția Reducerea se aplică la toate perechile intermediare cu aceeași cheie. Se efectuează de obicei un fel de operațiune care fuzionează și produce zero sau mai multe perechi de ieșire. In sfarsit, perechile de ieșire sunt clasificate în funcție de valoarea lor cheie. În cea mai simplă formă de programe MapReduce, programator oferă doar funcția de hartă. Toate celelalte funcționalități, inclusiv gruparea perechilor intermediare care au aceeași cheie și sortarea finală, este asigurată de runtime.

Fazele modelului MapReduce

Unitatea de nivel superior de lucru în MapReduce este un loc de muncă. Un loc de muncă are de obicei o hartă și o reducere a fazei, deși faza de reducere a poate fi omisă. For example, ia în considerare un loc de muncă care contează MapReduce numărul de ori fiecare cuvânt este folosit pe un set de documente. Faza de hartă contează cuvintele din fiecare document, REDUCE fază agregă datele per-document în cuvânt contează care acoperă întreaga colecție.

In timpul fazei de hartă, datele de intrare este împărțită în șpalturi de intrare pentru analiza de sarcini harta care rulează în paralel peste cluster-ul Hadoop. În mod implicit, cadrul MapReduce primeste date de intrare de sistem de fișiere distribuite Hadoop (HDF).

Faza de micșorare utilizează rezultatele de la sarcini hartă ca intrare pentru un set de sarcini reduc paralele. A reduce sarcinile de consolidare a datelor în rezultate finale. În mod implicit, stochează cadru MapReduce rezultatele în HDFS.

Cu toate că reduce faza depinde de ieșirea din faza hartă, hartă și de a reduce prelucrarea nu este în mod necesar secvențial. Acesta este, reduce sarcinile pot începe de îndată ce orice sarcină hartă completează. Nu este necesar ca toate sarcinile harta pentru a finaliza înainte de orice reducere a sarcinii poate începe.

MapReduce opereaza pe perechi cheie-valoare. conceptual, un loc de muncă MapReduce ia un set de intrare perechi cheie-valoare și produce un set de perechi de ieșire cheie-valoare prin trecerea datelor prin hartă și reduce funcțiile. Sarcinile de hartă a produce un set intermediar de perechi cheie-valoare care reduc sarcinile utilizări ca intrare.

Cheile din perechile hartă de ieșire nu trebuie să fie unic. Între procesarea hărții și procesarea reduce, un pas de amestecare sortează toate valorile hartă de ieșire cu aceeași cheie într-o singură intrare reduce (cheie, Valoarea-list) pereche, în cazul în care "valoarea’ este o listă a tuturor valorilor de partajare aceeași cheie. Thus, contribuția la o sarcină de a reduce este de fapt un set de (cheie, Valoarea-list) perechi.

Cu toate că fiecare set de perechi cheie-valoare este omogenă, perechile cheie-valoare în fiecare etapă nu trebuie să aibă același tip. For example, perechile cheie-valoare în set de intrare (KV1) poate fi (string, string) perechi, cu producerea de faza hartă (string, întreg) perechi, rezultate intermediare (KV2), și reduce producerea de fază (întreg, string) perechi pentru rezultatele finale (KV3).

Cheile din perechile hartă de ieșire nu trebuie să fie unic. Între procesarea hărții și procesarea reduce, un pas de amestecare sortează toate valorile hartă de ieșire cu aceeași cheie într-o singură intrare reduce (cheie, Valoarea-list) pereche, în cazul în care "valoarea’ este o listă a tuturor valorilor de partajare aceeași cheie. Thus, contribuția la o sarcină de a reduce este de fapt un set de (cheie, Valoarea-list) perechi.

Exemplu demonstrând concepte MapReduce

Exemplul demonstrează conceptul MapReduce de bază prin calcularea numărului de apariție a fiecărui cuvânt într-un set de fișiere text.

Datele de intrare MapReduce este împărțit în șpalturi intrare, iar split-urile sunt împărțite în continuare în intrare perechi cheie-valoare. În acest exemplu, setul de date de intrare este cele două documente, document1 și document2. Subclasa InputFormat împarte datele într-un singur set pe părți per document, pentru un total de 2 șpalturi:

Nota: Cadrul MapReduce împarte datele de intrare stabilite în bucăți numite rupturi folosind subclasa org.apache.hadoop.mapreduce.InputFormat furnizată în configurația de locuri de muncă. Despartirile sunt create de Client postului local și incluse în informațiile de locuri de muncă puse la dispoziția postului Tracker. Creează o sarcină JobTracker hartă pentru fiecare divizat. Fiecare sarcină hartă utilizează un RecordReader furnizat de subclasa InputFormat pentru a transforma în împărțirea de intrare perechi cheie-valoare.

A (Numărul de linie, text) pereche cheie-valoare este generată pentru fiecare linie într-un document de intrare. Funcția de hartă se debarasează numărul liniei și produce o per-line (cuvânt, Numarati) pereche pentru fiecare cuvânt în linia de intrare. REDUCE de fază produce (cuvânt, Numarati) perechi reprezentând cuvânt contează agregate pe toate documentele de intrare. Având în vedere datele de intrare prezentate in the map reduce progresia de exemplu, locul de muncă este:

Ieșirea din faza hartă conține mai multe perechi cheie-valoare cu aceeași cheie: "Ovăz a’ si mananca’ Tastele apar de două ori. Să ne amintim că cadrul MapReduce consolidează toate valorile cu aceeași cheie înainte de a intra în faza de reducere a, astfel încât contribuția la reducerea este de fapt (cheie, valori) perechi. Prin urmare, progresia completă de ieșire hartă, prin reducerea, rezultatelor finale este prezentată mai sus.

Ciclul de viață MapReduce de locuri de muncă

În urma este ciclul de viață al unui loc de muncă tipic MapReduce și rolurile actors.The primar întregul ciclu de viață sunt mai complexe asa ca aici ne vom concentra asupra componentelor primare.

The Hadoop configuration can be done in different ways but the basic configuration consists of the following.

  • Single master node running Job Tracker
  • Multiple worker nodes running Task Tracker

Following are the life cycle components of MapReduce job.

  • Local Job client: The local job Client prepares the job for submission and hands it off to the Job Tracker.
  • Job Tracker: The Job Tracker schedules the job and distributes the map work among the Task Trackers for parallel processing.
  • Task Tracker: Each Task Tracker spawns a Map Task. The Job Tracker receives progress information from the Task Trackers.

Once map results are available, the Job Tracker distributes the reduce work among the Task Trackers for parallel processing.

Each Task Tracker spawns a Reduce Task to perform the work. The Job Tracker receives progress information from the Task Trackers.

Toate sarcinile hartă nu trebuie să se încheie înainte de a reduce sarcinile de a începe de rulare. Reduc sarcini pot începe de îndată ce harta sarcini incepe completarea. Thus, hartă și de a reduce etapele de multe ori se suprapun.

Funcționalitatea diferitelor componente în MapReduce de locuri de muncă

Client de locuri de muncă: Clientul de locuri de muncă îndeplinește următoarele sarcini

  • Validează configurația de locuri de muncă
  • Generează destramă de intrare. Acest lucru este divizarea în principiu de locuri de muncă de intrare în bucăți
  • Copii resursele de locuri de muncă (configurație, fișier JAR de locuri de muncă, șpalturi de intrare) într-o locație partajată, cum ar fi un director HDFS, în cazul în care acesta este accesibil Tracker de locuri de muncă și sarcina Trackers
  • Înaintează lucrarea către Job Tracker

Job Tracker: Tracker de locuri de muncă îndeplinește următoarele sarcini

  • Fetches se desparte de intrare din locația partajată în cazul în care Clientul Iov a plasat informația
  • Creează o sarcină hartă pentru fiecare divizat
  • Alocă fiecare sarcină hartă pentru un tracker sarcină (nod lucrător)

După ce sarcina hartă este completă, Tracker de locuri de muncă are următoarele sarcini

  • Creează reduce sarcinile până la nivelul maxim permis de configurația de locuri de muncă.
  • Asignează fiecare partiție hartă rezultat într-o sarcină reduce.
  • Fiecare reduce sarcina sau cesionarii unui tracker sarcină.

Task Tracker: O sarcină Tracker gestionează sarcinile de un singur nod muncitor și raportează starea de locuri de muncă Tracker.

Sarcina Tracker are următoarele sarcini atunci când hartă sau reduce sarcina este atribuită acestuia

  • Fetches resurse de locuri de muncă la nivel local
  • Spawns un JVM copil pe nodul lucrător pentru a executa harta sau reduce sarcina
  • Rapoarte de stare la Job Tracker

Debugging Harta Reducerea

Hadoop păstrează jurnalele de evenimente importante în timpul execuției programului. În mod implicit, acestea sunt stocate în jurnalele / subdirector al Hadoop-versiune / director în cazul în care executați Hadoop de la. Fișierele log sunt numite Hadoop-username-serviciu-hostname.log. Cele mai recente date se află în fișierul .log; bușteni mai vechi au data la care au anexat la ele. Numele de utilizator în numele fișierului jurnal se referă la numele de utilizator sub care a fost început Hadoop — acest lucru nu este neapărat același nume de utilizator pe care îl utilizați pentru a rula programe. Numele de serviciu se referă la care dintre mai multe programe Hadoop sunt scris jurnalul; Teza poate fi jobtracker, namenode, datanode, secondarynamenode, sau tasktracker. Toate acestea sunt importante pentru depanarea unei instalații întregi Hadoop. Dar pentru programe individuale, jurnalele tasktracker vor fi cele mai relevante. Orice excepție de aruncat de programul dvs. vor fi înregistrate în jurnalele de tasktracker.

Directorul de jurnal va avea, de asemenea, un subdirector numit userlogs. Aici există un alt subdirector pentru fiecare rulare sarcină. Fiecare sarcină înregistrează stdout și stderr său la două fișiere în acest director. Rețineți că, pe un cluster Hadoop multi-nod, aceste jurnale nu sunt agregate la nivel central — ar trebui să verificați busteni / userlogs / directorul fiecare TaskNode pentru producția lor.

Debugging în setarea distribuită este complicată și necesită logare în mai multe mașini pentru a accesa datele de jurnal. Daca este posibil, Programele ar trebui să fie unitate testată prin rularea Hadoop la nivel local. Configurația implicită desfășurată de Hadoop se execută în “o singură instanță” mod, în cazul în care întregul program MapReduce este rulat în aceeași instanță de Java ca numita JobClient.runJob(). Cu ajutorul unui debugger cum ar fi Eclipse, puteți seta apoi în interiorul hărții puncte de oprire() sau de a reduce() metode pentru a descoperi bug-uri.

Este obligatorie reducerea de locuri de muncă?

Unele locuri de munca pot finaliza toate lucrările lor în timpul fazei de hartă. SO the Job can be map only job. To stop a job after the map completes, set the number of reduce tasks to zero.

Concluzie

This module described the MapReduce execution platform at the heart of the Hadoop system. By using MapReduce, a high degree of parallelism can be achieved by applications. The MapReduce framework provides a high degree of fault tolerance for applications running on it by limiting the communication which can occur between nodes.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share