Cuprins:
Video: Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Hadoop Training | Edureka 2024
La început, datele mari și R nu erau prieteni naturali. Programarea R necesită încărcarea tuturor obiectelor în memoria principală a unei singure mașini. Limitările acestei arhitecturi sunt realizate rapid atunci când datele mari devin o parte a ecuației.
În contrast, sistemele de fișiere distribuite, cum ar fi Hadoop, lipsesc tehnicile statistice puternice, dar sunt ideale pentru scalarea operațiilor și sarcinilor complexe. Soluțiile verticale de scalare - care necesită investiții în hardware-ul supercomputer costisitor - adesea nu pot concura cu rentabilitatea oferită de grupurile distribuite de hardware.
Pentru a se conforma limitărilor în memorie, de o singură mașină a limbajului R, oamenii de știință de date trebuiau adesea să restrângă analiza numai la un subset din datele de probă disponibile. Înainte de o integrare mai profundă cu Hadoop, programatorii de limbaj R au oferit o strategie de scalare pentru depășirea provocărilor în memorie generate de seturi de date mari pe mașini unice.
Acest lucru a fost realizat folosind sisteme de transmitere a mesajelor și paginare. Această tehnică este capabilă să faciliteze lucrul cu seturi de date prea mari pentru a fi stocate simultan în memoria principală; cu toate acestea, abordarea programării la nivel scăzut prezintă o curbă abruptă de învățare pentru cei care nu cunosc paradigmele programării paralele.
Abordările alternative urmăresc integrarea capabilităților statistice ale R cu clusterele distribuite de Hadoop în două moduri: interfața cu limbile de interogare SQL și integrarea cu Hadoop Streaming. Cu primul, scopul este de a pârghii existente platforme SQL de stocare a datelor, cum ar fi stup și porc. Aceste scheme simplifică programarea de lucru Hadoop utilizând declarații în stil SQL pentru a oferi programare la nivel înalt pentru efectuarea de activități statistice pe baza datelor Hadoop.
Pentru programatorii care doresc să programeze locații de lucru MapReduce în limbi (inclusiv R), altele decât Java, oa doua opțiune este de a utiliza API-ul Streaming al Hadoop. Lucrările MapReduce trimise de utilizator sunt supuse transformărilor de date cu ajutorul fluxurilor standard și serializării UNIX, garantând intrarea în conformitate cu Java a lui Hadoop - indiferent de limba inițială introdusă de programator.
Dezvoltatorii continuă să exploreze diferite strategii pentru a mobiliza capacitatea de calcul distribuită a MapReduce și capacitatea de stocare aproape nelimitată a HDFS în moduri care pot fi exploatate de R.
Integrarea Hadoop cu R este în curs de desfășurare, ofertele fiind disponibile de la IBM (Big R ca parte a BigInsights) și Revolution Analytics (Revolution R Enterprise). Soluțiile de corelare care integrează programarea la nivel înalt și limbile de interogare cu Hadoop, cum ar fi RHive și RHadoop, sunt, de asemenea, disponibile.
În mod fundamental, fiecare sistem își propune să furnizeze capacitățile analitice profunde ale limbajului R la seturi mult mai mari de date.
RHive
Cadrul RHive servește ca o punte între limbajul R și stup. RHive livrează bibliotecile statistice bogate și algoritmii lui R la datele stocate în Hadoop prin extinderea limbajului de interogare Hive SQL (HiveQL) cu funcții specifice R. Prin intermediul funcțiilor RHive, puteți utiliza HiveQL pentru a aplica modele statistice R la datele din clusterul dvs. Hadoop pe care le-ați catalogat folosind Hive.
RHadoop
Un alt cadru open source disponibil programatorilor R este RHadoop, o colecție de pachete destinate să ajute la gestionarea distribuției și analizei datelor cu Hadoop. Trei pachete de note - rmr2, rhdfs și rhbase - asigură cea mai mare parte a funcționalității RHadoop:
-
rmr2: Pachetul rmr2 acceptă traducerea limbajului R în joburile MapReduce compatibile cu Hadoop (producătoare de cod MapReduce de la codul R de nivel superior).
-
rhdfs: Pachetul rhdfs oferă un API pentru limbajul R pentru gestionarea fișierelor în magazinele HDFS. Utilizând rhdfs, utilizatorii pot citi din magazinele HDFS un cadru de date R (matrice) și, în mod similar, pot scrie date din aceste matrice R înapoi în spațiul de stocare HDFS.
-
rhbase: pachetele rhbase oferă și un limbaj AP API, dar scopul lor în viață este de a gestiona gestionarea bazelor de date pentru magazinele HBase, mai degrabă decât fișierele HDFS.
Revoluția R
Revoluția R (de Revolution Analytics) este o ofertă comercială R cu suport pentru integrarea R pe sistemele distribuite Hadoop. Revoluția R promite să producă performanțe îmbunătățite, funcționalitate și utilizare pentru R on Hadoop. Pentru a oferi analize profunde asemănătoare cu R, Revolution R folosește biblioteca ScaleR a companiei - o colecție de algoritmi de analiză statistică dezvoltați special pentru colecții mari de date la scară industrială.
ScaleR își propune să asigure executarea rapidă a codului de program R pe clusterele Hadoop, permițând dezvoltatorului R să se concentreze exclusiv asupra algoritmilor statistici și nu pe MapReduce. Mai mult, gestionează numeroase sarcini de analiză, cum ar fi pregătirea datelor, vizualizarea și testele statistice.
IBM BigInsights Big R
Big R oferă o integrare end-to-end între R și oferta IBM Hadoop, BigInsights, care permite dezvoltatorilor R să analizeze datele Hadoop. Scopul este să exploateze sintaxa de programare a R și paradigmele de codificare, asigurând în același timp că datele funcționează la șederea în HDFS. Datele de tip R servesc drept proxy pentru aceste stocări de date, ceea ce înseamnă că dezvoltatorii R nu trebuie să se gândească la construcțiile MapReduce de nivel inferior sau la orice limbaj de scripting specifice Hadoop (cum ar fi Pig).
Tehnologia BigInsights Big R suportă mai multe surse de date - inclusiv fișierele plate, formatele de stocare HBase și Hive - oferind în același timp paralel și partiționat execuția codului R în grupul Hadoop. Acesta ascunde multe dintre complexitățile din cadrele HDFS și MapReduce care stau la baza, permițând funcțiilor Big R să efectueze analize de date comprehensive - atât pe date structurate cât și nestructurate.
În cele din urmă, scalabilitatea motorului statistic Big R permite dezvoltatorilor R să utilizeze tehnicile statistice predefinite, precum și algoritmii noi de autor.