Apache Apex – O introducere

Publicat: 2015-12-29

Apache Hadoop a devenit un cadru software de facto pentru calcule fiabile, scalabile, distribuite și la scară largă. De la începuturile sale, Hadoop a fost cadru de primă alegere pentru procesarea în lot. De la bănci mari la giganți de retail online, toată lumea folosește Hadoop pentru generarea de rapoarte periodice, calcule și pentru multe alte cazuri de utilizare. De obicei, aceste cazuri de utilizare sunt procese orientate pe loturi și necesită câteva ore înainte de a obține sensul datelor. Lumea rapidă de astăzi necesită sens sau acțiuni din datele brute aproape în momentul în care acestea sunt generate. Acest lucru a condus la un concept de procesare a fluxului. Deși Hadoop nu este considerat inițial potrivit pentru procesarea fluxului, invenția YARN (Hadoop 2.0) l-a făcut un bun candidat pentru acesta. În prezent, există mai multe cadre de procesare a fluxurilor în ecosistemul Hadoop, iar Apex este unul nou-nouț care intră pe această piață aglomerată.

Ce este Apache Apex?

Apache Apex este o platformă nativă bazată pe YARN, care ajută dezvoltatorul de aplicații să scrie aplicații orientate pe flux, precum și pe batch. Este conceput pentru a procesa datele în mișcare, într-un mod distribuit, foarte performant, tolerant la erori. Cireașa peste aceasta este API-ul ușor, care permite utilizatorilor să-și scrie codul java cu cunoștințe limitate despre procesarea fluxului.

Apex se bazează pe specificații funcționale și operaționale separate, mai degrabă combinându-le împreună. Acest lucru îi face pe dezvoltatorii de aplicații să se concentreze pe scrierea Funcțiilor definite de utilizator fără a fi nevoiți să se gândească la modul în care vor funcționa în mediul distribuit.

Apache Apex are o bibliotecă bogată de funcții utilizate în mod obișnuit. Acestea sunt adăugate ca parte a bibliotecii Apache Apex-Malhar. Această bibliotecă are operatori pentru a accesa diferite sisteme de fișiere, baze de date, cozi de mesaje. Comunitatea adaugă operatorii de zi cu zi, făcând viața dezvoltatorilor de aplicații mai ușoară.

Care sunt blocurile de bază ale Apache Apex?

Arhitectura Apex este foarte simplă. Apex are Malhar, o bibliotecă de operator și un motor de bază pentru a lucra. Core of Apex ar putea fi descris după cum urmează, ele sunt adesea denumite blocuri majore ale Apache Apex.

blocuri de bază ale Apache Apex

Puteți separa clar straturile și puteți obține o imagine de ansamblu unde se potrivește. Să vedem informații despre aceste blocuri.

  1. StrAM ( M aster de aplicații de Str eam )
    StrAM este un master al aplicației YARN. Responsabilitatea sa include lansarea aplicației în flux, alocarea resurselor, programarea DAG-urilor logice. Alături de aceste operațiuni YARN, StrAM inițializează operatorii, fluxurile. StrAM colectează și statistici de la copiii săi.
  2. Instantaneu de stat
    Cadrele de procesare a fluxului nu își puteau permite pierderea rezultatelor procesate. În plus, ei trebuie să știe cât de mult au procesat pentru a procesa corect înregistrările după ce s-au recuperat din eșec. Prin urmare, periodic, indicarea de verificare este importantă în procesarea fluxului. În Apex, StrAM ține evidența punctelor de verificare și la limita operatorului, punctarea de verificare periodică este efectuată pe HDFS.
  3. API-ul REST
    StrAM este punctul de acces pentru API-ul REST. Instrumentele externe pot accesa acest API REST și se pot integra cu orice aplicație externă.
  4. Instrumente
    Apex oferă CLI pentru lansarea și monitorizarea aplicațiilor Apex. Chiar și noi ne putem construi pe al nostru cu ajutorul API-urilor REST. Împreună cu CLI, aplicația se poate configura cu scripturi de configurare statice pentru lansare automată.
  5. Compartimentare
  6. Apex oferă partiționare bazată pe chei și echilibrare dinamică a sarcinii. Chiar și utilizatorul își poate defini propria schemă de partiționare.

  7. Modificări dinamice
  8. Apache Apex are această caracteristică foarte utilă și unică. Suportă modificarea DAG logică, modificarea planului de execuție fizică.

  9. Analiza SLA
    Apache Apex efectuează periodic analize SLA pe cont propriu. Face analize de latență, blocaj și debit și adaugă mai multe resurse pentru a îndeplini SLA configurat.
  10. Securitate
  11. Apex acceptă Kerberos. La baza clusterului Hadoop securizat, acesta poate accesa cu integrarea Kerberos inerentă.

  12. Valabilitate ridicată
    Apache Apex utilizează funcționalitatea de repornire a lui YARN și repornește din ultima stare de verificare.
  13. Malhar
    Apache Apex –Malhar este o bibliotecă a operatorilor cu numeroși operatori. Acești operatori sunt clasificați în
    • Operatori de intrare/ieșire
      În această categorie, în prezent, Malhar are operatori din care să citească/să scrie
    • Sistemul de fișiere
    • RDBMS
    • magazine NoSQL
    • Cozi de mesaje
    • Baze de date în memorie
    • Social Media
  14. Operatori de calcul –
  15. Malhar are mulți operatori care vor ajuta la implementarea reală a logicii de afaceri. Această bibliotecă are

        • Potrivire de model
        • Statistici și matematică
        • Învățare automată
        • Analizoare
        • Social Media
      • Servere tampon

      Serverele tampon se află la granița fiecărui operator. În cazul datelor, serverele tampon ale operatorilor locali pot fi după șiruri de operatori. Scopul principal al acestora este păstrarea temporară a datelor la margini înainte de a le redirecționa la următoarea. Ele au un rol important atunci când nodul este recuperat de la eșec. Serverele buffer încarcă date din ultima stare de verificare până la reluare

      Ce este modelul de programare Apex Application?

      Aceasta oferă un cadru bogat și o bibliotecă Malhar, ceea ce înseamnă că dezvoltatorii de aplicații trebuie doar să conecteze operatorii și să lanseze aplicația. Prin urmare, aplicația dvs. nu este altceva decât o secvență de operatori.

      Model de programare Apex Application

      Acesta este modul în care cadrul bogat ușurează viața dezvoltatorului. Deci, să vedem cum rulează această aplicație demonstrativă

      Apache Apex Demo

      Deci, să începem cu „ Hello World of Big Data J”, o mică demonstrație a numărului de cuvinte folosind Apache Apex.

      Configurarea Apache Apex

      Pentru a rula această demonstrație, trebuie să configuram Apex. Puteți instala Apache Apex pe clusterul dvs. existent sau există o modalitate simplă de a încerca, puteți descărca VM preinstalare sandbox de pe site-ul DataTorrent de aici. Pentru această demonstrație vom folosi VM preinstalat.

      Tutorial Consola Apex UI

      Apex vine cu o consolă UI cu un design foarte intuitiv și frumos, pe care o puteți folosi pentru lansarea, monitorizarea și gestionarea aplicațiilor. Include diverse statistici referitoare la diferite componente care sunt implementate.

      După ce ați descărcat VM-ul sandbox, dezinstalați-l și încărcați-l în playerul VM preferat (eu folosesc VMWare VM player). Toate software-urile și instrumentele necesare pentru rularea Apex sunt deja configurate în această VM și toate scripturile de pornire sunt configurate pentru a fi executate la pornirea sistemului de operare. Deci, când VM-ul dvs. va fi activ, veți avea o instanță care rulează Apache Apex. Acum, pentru a vedea consola, trebuie doar să apăsați pe http://locahost:9090 în browserul dvs. web preferat și să vă conectați la consolă. Nume de utilizator implicit: parola pentru VM sandbox este dtadmin: dtadmin. Veți vedea consola ca mai jos

      Consola Apache Apex UI

      Această pagină ne oferă o imagine de ansamblu completă a tuturor sistemelor, cum ar fi utilizarea CPU și a memoriei, aplicații, performanță, probleme etc.

      Pentru a implementa o aplicație, accesați fila Dezvoltare din partea de sus a paginii.

      torrent de date

      Aici vă puteți implementa pachetele de aplicații și puteți gestiona schemele tuple pentru datele din Apex.

      Apex vă oferă un număr de aplicații din cutie, pe care le puteți vedea enumerate mai jos:

      torrent de date

      Demo WordCount

      Acum, să lansăm aplicația de numărare de cuvinte. Puteți face acest lucru făcând clic pe opțiunea de lansare a aplicației de lângă DataTorrent Wordcount Demo. Apoi, puteți să furnizați o aplicație diferită și să modificați detaliile de configurare dacă este necesar (Nu vom face acest lucru, deoarece majoritatea setărilor implicite funcționează bine, să modificăm doar numele aplicației în „MyWordCountDemo”). Veți vedea un mesaj care spune că aplicația a fost implementată cu succes, cu un link către aplicație. Faceți clic pe acel link.

      demonstrație de numărare de cuvinte

      Aceasta deschide o pagină nouă. Așteptați câteva secunde până când starea aplicației se schimbă din Acceptat în Running. Veți vedea acum o pagină care este plină de diverse statistici și informații. Următoarele două capturi de ecran îi înfățișează.

      demonstrație de numărare de cuvinte

      Consola Apache Apex UI

      Aceste pagini ne arată diverse informații, cum ar fi vizualizarea logică, fizică și metrică a aplicației, împreună cu statistici ale diferitelor tupluri/înregistrări procesate de aplicație în fiecare secundă. Acesta arată reprezentarea grafică a tuplurilor care sunt emise și a latențelor etc.

      Puteți să faceți clic pe oricare operator logic, să inspectați înregistrările acestuia și chiar să înregistrați o mostră. Să facem asta pentru operatorul de consolă. Faceți clic pe operator de consolă și veți obține informații detaliate despre operator, după cum urmează:

      Consola Apache Apex UI

      Apoi, selectați una dintre partiții și faceți clic pe înregistrarea unui eșantion.

      Consola Apache Apex UI

      După câteva secunde, veți vedea că tuplurile sunt populate, faceți clic pe tuplu pentru a vedea conținutul acestuia. După cum puteți vedea din conținut, aplicația a efectuat numărătoarea de cuvinte pe date bazate pe ferestre și au fost 2 „to”, 4 „the”, 4 „a” etc. în al 0-lea tuplu de intrare pentru această fereastră. Acum puteți opri aplicația făcând clic pe „Oprire” sau „Ucidere” pe pagina principală a aplicației.

      Gata, am implementat și am rulat cu succes aplicația wordcount.

      Concluzie

      Așadar, aceasta a fost introducerea unui nou instrument de streaming – Apache Apex și rularea cu succes a unei aplicații în Apache Apex. Apache Apex are multe caracteristici importante care îi conferă un avantaj față de alte cadru existente pe care le voi acoperi în postările ulterioare.