Tutorial Apache Spark pentru începători: Învățați Apache Spark cu exemple

Publicat: 2020-03-26

Cuprins

Introducere

Datele sunt peste tot – de la jurnalele clienților unui mic startup până la fișele financiare ale unei mari companii multinaționale. Companiile folosesc aceste date generate pentru a înțelege cum funcționează afacerea lor și unde se pot îmbunătăți. Peter Sondergaard, vicepreședinte senior al Gartner Research, a spus că informațiile sunt uleiul pentru secolul 21, iar analiza poate fi considerată motorul cu ardere.

Dar pe măsură ce companiile cresc, la fel cresc și clienții, părțile interesate, partenerii de afaceri și produsele lor. Deci, cantitatea de date pe care trebuie să le gestioneze devine uriașă.

Toate aceste date trebuie analizate pentru a crea produse mai bune pentru clienții lor. Dar terabytes de date produși pe secundă nu pot fi gestionați folosind foi și jurnalele Excel. Seturi uriașe de date pot fi gestionate de instrumente precum Apache Spark.

Vom intra în detaliile software-ului printr-o introducere în Apache Spark .

Ce este Apache Spark?

Apache Spark este un cadru de calcul în cluster open-source . Este practic un sistem de procesare a datelor care este utilizat pentru a gestiona încărcături uriașe de date și seturi de date. Poate procesa rapid seturi mari de date și, de asemenea, poate distribui aceste sarcini pe mai multe sisteme pentru a ușura volumul de lucru. Are un API simplu care reduce sarcina dezvoltatorilor atunci când sunt copleșiți de cei doi termeni – procesarea datelor mari și calculul distribuit!

Dezvoltarea Apache Spark a început ca un proiect de cercetare open-source la AMPLab-ul UC Berkeley de către Matei Zaharia , care este considerat fondatorul Spark. În 2010, sub o licență BSD, proiectul a fost open-source. Mai târziu, a devenit un proiect incubat sub Apache Software Foundation în 2013. Acesta a devenit unul dintre proiectele de top ale companiei în 2014.

În 2015, Spark a avut peste 1000 de colaboratori la proiect. Acest lucru l-a făcut unul dintre cele mai active proiecte din Apache Software Foundation și, de asemenea, în lumea datelor mari. Peste 200 de companii susțin acest proiect din 2009.

Dar de ce toată această nebunie pentru Spark?

Acest lucru se datorează faptului că Spark este capabil să manipuleze tone de date și să le proceseze simultan. Aceste date pot fi distribuite pe mii de servere virtuale sau fizice conectate. Are un set imens de API-uri și biblioteci care funcționează cu mai multe limbaje de programare, cum ar fi Python, R, Scala și Java. Acceptă fluxul de date, sarcini complicate, cum ar fi procesarea graficelor și, de asemenea, învățarea automată. De asemenea, caracteristicile care schimbă jocul ale apache spark fac cererea sa vertiginoasă.

Acceptă o gamă largă de baze de date, cum ar fi bazele de date Hadoop HDFS, Amazon S3 și NoSQL, cum ar fi MongoDB, Apache HBase, MapR Database și Apache Cassandra. De asemenea, acceptă Apache Kafka și MapR Event Store.

Arhitectura Apache Spark

După ce am explorat introducerea Apache Spark, vom afla acum despre structura acestuia. Aflați mai multe despre Apache Architecture.

Arhitectura sa este bine definită și are două componente principale:

Seturi de date distribuite rezistente (RDD)

Aceasta este o colecție de elemente de date care sunt stocate pe nodurile de lucru ale clusterului Spark. Un cluster este o colecție distribuită de mașini în care puteți instala Spark. RDD-urile sunt numite rezistente, deoarece sunt capabile să repare datele în cazul unei defecțiuni. Ele se numesc distribuite deoarece sunt răspândite în mai multe noduri dintr-un cluster.

Două tipuri de RDD-uri sunt acceptate de Spark:

  • Seturi de date Hadoop create din fișiere de pe HDFS (Hadoop Distributed File System)
  • Colecții paralele bazate pe colecțiile Scala

RDD-urile pot fi utilizate pentru două tipuri de operațiuni care sunt:

  • Transformări – Aceste operațiuni sunt utilizate pentru crearea RDD-urilor
  • Acțiuni – Acestea sunt folosite pentru a instrui Spark să efectueze unele calcule și să returneze rezultatul driverului. Vom afla mai multe despre șoferi în secțiunile următoare

DAG (Grafic aciclic direcționat)

Aceasta poate fi considerată ca o secvență de acțiuni asupra datelor. Sunt o combinație de vârfuri și muchii. Fiecare vârf reprezintă un RDD și fiecare muchie reprezintă calculul care trebuie efectuat pe acel RDD. Acesta este un grafic care conține toate operațiunile aplicate RDD.

Acesta este un grafic direcționat, deoarece un nod este conectat la celălalt. Graficul este aciclic deoarece nu există nicio buclă sau ciclu în el. Odată efectuată o transformare, aceasta nu se poate întoarce la poziția inițială. O transformare în Apache Spark este o acțiune care transformă o stare de partiție a datelor din A în B.

Deci, cum funcționează această arhitectură? Să vedem.

Arhitectura Apache Spark are doi demoni primari și un manager de cluster . Acestea sunt – master și worker daemon . Un demon este un program care este executat ca proces de fundal. Un cluster din Spark poate avea mai mulți sclavi, dar un singur daemon master.

În interiorul nodului master , există un program driver care execută aplicația Spark. Shell-ul interactiv pe care l-ați putea folosi pentru a rula codul acționează ca program de unitate. În cadrul programului driver, este creat contextul Spark. Acest context și programul driver execută un job cu ajutorul unui manager de cluster.

Jobul este apoi distribuit pe nodul lucrător după ce este împărțit în mai multe sarcini. Sarcinile sunt executate pe RDD-uri de către nodurile de lucru . Rezultatul este returnat contextului Spark . Când creșteți numărul de lucrători, lucrările pot fi împărțite în mai multe partiții și pot rula în paralel pe mai multe sisteme. Acest lucru va reduce volumul de muncă și va îmbunătăți timpul de finalizare a lucrării.

Apache Spark: Beneficii

Acestea sunt avantajele utilizării Apache Spark :

Viteză

În timpul executării joburilor, datele sunt mai întâi stocate în RDD-uri. Deci, deoarece aceste date sunt stocate în memorie, sunt accesibile rapid și lucrarea va fi executată mai rapid. Alături de stocarea în cache în memorie, Spark are și execuția optimizată a interogărilor. Prin aceasta, interogările analitice pot rula mai rapid. Se poate obține o viteză foarte mare de procesare a datelor. Poate fi de 100 de ori mai rapid decât Hadoop pentru procesarea datelor la scară largă.

Gestionarea mai multor sarcini de lucru

Apache Spark poate gestiona mai multe sarcini de lucru simultan. Acestea pot fi interogări interactive, procesare grafică, învățare automată și analize în timp real. O aplicație Spark poate încorpora cu ușurință multe sarcini de lucru.

Ușurință în utilizare

Apache Spark are API-uri ușor de utilizat pentru a gestiona seturi mari de date. Aceasta include mai mult de 100 de operatori pe care îi puteți folosi pentru a construi aplicații paralele. Acești operatori pot transforma datele, iar datele semi-structurate pot fi manipulate folosind API-uri de cadre de date.

Suport lingvistic

Spark este preferatul dezvoltatorilor, deoarece acceptă mai multe limbaje de programare, cum ar fi Java, Python, Scala și R. Acest lucru vă oferă mai multe opțiuni pentru dezvoltarea aplicațiilor. API-urile sunt, de asemenea, foarte prietenoase cu dezvoltatorii, deoarece îi ajută să ascundă tehnologia complicată de procesare distribuită în spatele operatorilor de nivel înalt, care ajută la reducerea cantității de cod necesare.

Eficienţă

Evaluarea leneșă se efectuează în Spark. Aceasta înseamnă că toate transformările făcute prin RDDS sunt leneșe în natură. Deci, rezultatele acestor transformări nu sunt produse imediat și un nou RDD este creat dintr-unul existent. Utilizatorul poate organiza programul Apache în mai multe operațiuni mai mici, ceea ce crește gestionabilitatea programelor.

Evaluarea leneșă crește viteza sistemului și eficiența acestuia.

Sprijin comunitar

Fiind unul dintre cele mai mari proiecte de date mari open-source, are peste 200 de dezvoltatori din diferite companii care lucrează la el. În 2009, comunitatea a fost inițiată și a crescut de atunci. Deci, dacă vă confruntați cu o eroare tehnică, este posibil să găsiți o soluție online, postată de dezvoltatori.

De asemenea, s-ar putea să găsiți mulți dezvoltatori independenți sau cu normă întreagă gata să vă asiste în proiectul dvs. Spark.

Streaming în timp real

Spark este renumit pentru transmiterea de date în timp real . Acest lucru este posibil prin Spark Streaming, care este o extensie a API-ului Spark de bază. Acest lucru le permite oamenilor de știință să gestioneze date în timp real din diverse surse, cum ar fi Amazon Kinesis și Kafka . Datele prelucrate pot fi apoi transferate în baze de date, sisteme de fișiere și tablouri de bord.

Procesul este eficient în sensul că Spark Streaming se poate recupera rapid de la erorile de date. Realizează o mai bună echilibrare a sarcinii și utilizează resursele eficient.

Aplicații Apache Spark

După introducerea în Apache Spark și beneficiile sale , vom afla mai multe despre diferitele aplicații ale acestuia:

Învățare automată

Capacitatea Apache Spark de a stoca datele în memorie și de a executa interogări în mod repetat îl face o opțiune bună pentru antrenarea algoritmilor ML. Acest lucru se datorează faptului că executarea de interogări similare în mod repetat va reduce timpul necesar pentru a determina cea mai bună soluție posibilă.

Biblioteca de învățare automată a Spark (MLlib) poate face operațiuni de analiză avansate, cum ar fi analiza predictivă, clasificarea, analiza sentimentelor, gruparea și reducerea dimensionalității.

Integrarea datelor

Datele care sunt produse prin diferitele sisteme din cadrul unei organizații nu sunt întotdeauna curate și organizate. Spark este un instrument foarte eficient în efectuarea operațiunilor ETL pe aceste date. Aceasta înseamnă că execută, extrage, transformă și încarcă operațiuni pentru a extrage date din diferite surse, a le curăța și a le organiza. Aceste date sunt apoi încărcate într-un alt sistem pentru analiză.

Analiză interactivă

Acesta este un proces prin care utilizatorii pot efectua analize de date pe date live. Cu ajutorul caracteristicii Structured Streaming din Spark, utilizatorii pot rula interogări interactive pe date live. De asemenea, puteți rula interogări interactive într-o sesiune web live care va stimula analiza web. Algoritmii de învățare automată pot fi aplicați și acestor fluxuri de date în direct.

Calcularea ceață

Știm că IoT (Internetul lucrurilor) se ocupă cu o mulțime de date care provin de la diferite dispozitive cu senzori. Acest lucru creează o rețea de dispozitive și utilizatori interconectați. Dar, pe măsură ce rețeaua IoT începe să se extindă, este nevoie de un sistem de procesare paralelă distribuită.

Deci, procesarea datelor și descentralizarea stocării se realizează prin Fog Computing împreună cu Spark . Pentru aceasta, Spark oferă componente puternice precum Spark Streaming, GraphX ​​și MLlib. Aflați mai multe despre aplicațiile Apache spark.

Concluzie

Am aflat că Apache Spark este rapid, eficient și bogat în funcții. De aceea, companii precum Huawei, Baidu, IBM, JP Morgan Chase, Lockheed Martin și Microsoft îl folosesc pentru a-și accelera afacerile. Acum este celebru în diverse domenii, cum ar fi comerțul cu amănuntul, afaceri, servicii financiare, managementul asistenței medicale și producție.

Pe măsură ce lumea devine tot mai dependentă de date, Apache Spark va continua să fie un instrument important pentru procesarea datelor în viitor.

Dacă sunteți interesat să aflați mai multe despre Big Data, consultați programul nostru PG Diploma în Dezvoltare Software Specializare în Big Data, care este conceput pentru profesioniști care lucrează și oferă peste 7 studii de caz și proiecte, acoperă 14 limbaje și instrumente de programare, practică practică. ateliere de lucru, peste 400 de ore de învățare riguroasă și asistență pentru plasarea unui loc de muncă cu firme de top.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Conduceți revoluția tehnologică bazată pe date

Peste 400 de ore de învățare. 14 limbi și instrumente. Statutul de absolvenți IIIT-B.
Program de certificat avansat în Big Data de la IIIT Bangalore