Apache Spark

Apache Spark

informație
Dezvoltat de Apache Software Foundation
Prima versiune 30 mai 2014
Ultima versiune 3.1.0 (5 ianuarie 2021)
Depozit github.com/apache/spark
Scris in Scala , Java , Python , R , SQL ( d ) și Java Database Connectivity
Sistem de operare Microsoft Windows , Linux și macOS
Mediu inconjurator Mașină virtuală Java
Citiți formatele Notare obiect JavaScript , valori separate prin virgulă , fișier text , parchet Apache și coloană de rând optimizată (ORC) ( d )
Formate scrise Valori separate prin virgulă , notare obiect JavaScript , parchet Apache , fișier text și coloană optimizată de rând (ORC) ( d )
Tip Cadru
Structura software-ului de învățare automată ( d )
Cloud computing
Licență Licență Apache versiunea 2.0 și licență BSD
Site-ul web spark.apache.org și spark.apache.org

Spark (sau Apache Spark ) este un cadru open source de calcul distribuit . Este un set de instrumente și componente software structurate conform unei arhitecturi definite. Dezvoltat la Universitatea California din Berkeley de AMPLab, Spark este astăzi un proiect al Fundației Apache . Acest produs este un cadru de aplicații pentru prelucrarea datelor mari pentru a efectua analize complexe la scară largă.

Istoric

În 2009, Spark a fost proiectat de Matei Zaharia  (în) în timpul doctoratului la Universitatea din California la Berkeley. Inițial, dezvoltarea sa este o soluție pentru accelerarea procesării sistemelor Hadoop . Dezvoltatorii subliniază în special viteza produsului în ceea ce privește executarea sarcinilor în comparație cu MapReduce .

În 2013, transmis fundației Apache, Spark a devenit unul dintre cele mai active proiecte ale acesteia.

În 2014, Spark a câștigat concursul Daytona GraySort, al cărui obiectiv este să sorteze 100  TB de date cât mai repede posibil. Acest record a fost deținut anterior de Hadoop. Pentru a face acest lucru, Spark a folosit 206 de mașini cu un timp de rulare final de 23 de minute, în timp ce Hadoop a folosit 2.100 de mașini pentru un timp de rulare final de 72 de minute . Puterea Spark a fost demonstrată prin faptul că este de 3 ori mai rapidă și folosind aproximativ 10 ori mai puține mașini.

Contribuitorii care participă la dezvoltarea sa sunt numeroși și provin din aproximativ 200 de companii diferite, precum Intel , Facebook , IBM și Netflix . Din 2015, au existat peste 1.000 de colaboratori.

utilizare

Spark citește datele la nivel de cluster (un cluster de servere dintr-o rețea), efectuează orice operațiuni de analiză necesare și apoi scrie rezultatele la același nivel. În ciuda faptului că sarcinile sunt scrise cu limbile Scala , Java și Python , acesta folosește cel mai bine capacitățile sale cu limba sa maternă, Scala.

Deci, în cazul în care Hadoop’s MapReduce funcționează în etape, Spark poate lucra la toate datele în același timp. Deci, este de până la zece ori mai rapid pentru procesarea în serie și de până la o sută de ori mai rapid pentru efectuarea analizei în memorie.

Spark efectuează toate operațiunile de analiză a datelor în memorie și în timp real. Se bazează pe discuri numai atunci când memoria sa nu mai este suficientă. În schimb, cu Hadoop, datele sunt scrise pe disc după fiecare operație. Această muncă de memorie reduce timpul de latență între tratamente, ceea ce explică o astfel de viteză.

Cu toate acestea, Spark nu are propriul sistem de gestionare a fișierelor . Este necesar să-l furnizați cu unul, de exemplu Hadoop Distributed File System , Informix , Cassandra , OpenStack Swift sau Amazon S3 ) . Se recomandă utilizarea acestuia cu Hadoop, care rămâne în prezent cea mai bună soluție de stocare globală datorită instrumentelor sale mai avansate de administrare, securitate și monitorizare .

În cazul unei defecțiuni sau eșecuri a sistemului: obiectele de date sunt stocate în așa-numitele seturi de date distribuite rezistente ( RDD ) răspândite în clusterul de date, permițând recuperarea completă a datelor.

Un RDD este o colecție de date calculate dintr-o sursă și păstrate în memorie RAM (atâta timp cât capacitatea o permite). Unul dintre avantajele RDD este capacitatea sa de a păstra suficiente informații despre modul în care a fost produsă o partiție RDD. În cazul pierderii unei partiții, este, prin urmare, capabilă să o recalculeze.

Instrumente

Spark SQL

Spark SQL vă permite să rulați interogări în limbaje SQL pentru a încărca și transforma date. Limbajul SQL provine din baze de date relaționale , dar în Spark poate fi folosit pentru a procesa orice date, indiferent de formatul său original.

Spark Streaming

Spark Streaming oferă utilizatorului său procesarea datelor în flux. Folosește date DStream ( flux discretizat ) în timp real, adică o serie continuă de RDD-uri.

De exemplu Twitter sau Amazon Kinesis.

Spark Graph X

Spark Graph X vă permite să procesați informații din grafice . Graficul X extinde RDD-urile Spark prin introducerea graficului rezilient al setului de date distribuite , un multi-grafic direcționat cu proprietăți atașate nodurilor și muchiilor.

Spark MLlib

Este o bibliotecă de învățare automată , apărută în versiunea 1.2 a Spark, care conține toți algoritmii și utilitățile de învățare clasice, cum ar fi clasificarea , regresia , clusterizarea , filtrarea colaborativă și reducerea dimensiunilor, plus primitivele de optimizare subiacente. Adesea vorbim despre o exploatare a datelor prin învățare statistică.

Caracteristici

Astăzi, noțiunea de date mari este foarte răspândită. Spark se adresează unui public care caută prelucrarea eficientă a datelor prea mari pentru a fi stocate pe un singur computer. Fiecare dintre jucătorii în cauză caută o reacție din ce în ce mai mare la piață, de unde interesul unei analize în timp real.

Modul în care funcționează MapReduce poate fi suficient dacă nevoile operaționale și de raportare sunt în mare parte statice și este posibil să așteptați finalizarea procesării lotului. Dar Spark aduce valoare adăugată prin introducerea Spark Streaming. Acest instrument face posibilă, de exemplu, prelucrarea datelor trimise de senzori într-o fabrică sau care necesită o succesiune de operații. Acesta este cazul majorității algoritmilor de învățare automată care trebuie să efectueze mai multe operații. De exemplu, Spark este potrivit pentru campanii de marketing în timp real, recomandări de produse online sau chiar securitate cibernetică .

Interfețe cu alte limbaje de programare

Spark oferă interfețe de programare implicit care îi permit să fie utilizat de la Scala , Java , Python , și limbile R .

În plus, proiectul independent EclairJS vă permite să scrieți programe Spark în JavaScript .

Note și referințe

  1. „  Versiunea 3.1.0  ” ,5 ianuarie 2021(accesat la 6 februarie 2021 )
  2. (în) „  Databricks Ce este Apache Spark?  » , Pe databricks.com
  3. (în) „  Spark AMPLab  ” pe https://amplab.cs.berkeley.edu
  4. (în) „  Matei Zaharia  ” pe https://cs.stanford.edu
  5. „  Scânteia depășește MapReduce în analiza datelor  ” , pe lemondeinformatique.fr ,8 decembrie 2014(accesat pe 24 noiembrie 2016 )
  6. (ro) „  Proiectele Fundației Apache  ” pe https://projects.apache.org
  7. (ro-SUA) "  Apache Spark stabilește oficial un nou record în sortarea pe scară largă  " , Databricks ,5 noiembrie 2014( citiți online , consultat la 9 noiembrie 2016 )
  8. „  Committers - Spark - Apache Software Foundation  ” , la cwiki.apache.org (accesat la 14 noiembrie 2016 )
  9. „  The Apache Spark Open Source Project on Open Hub  ” , la www.openhub.net (accesat la 9 noiembrie 2016 )
  10. „  Spark, set de instrumente pentru date mari - STAT4DECISION  ” , la www.stat4decision.com (accesat la 24 noiembrie 2016 )
  11. (în) „  Cinci lucruri pe care trebuie să le știți despre Hadoop v. Apache Spark  ” , pe infoworld.com ,11 decembrie 2015(accesat pe 9 noiembrie 2016 )
  12. „  Ce este Apache Spark?” - Amazon Web Services (AWS)  ” , pe Amazon Web Services, Inc. (accesat la 9 noiembrie 2016 )
  13. https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf
  14. „  Apache Spark ™ - Computer Light -Fast Cluster Computing  ” , la spark.apache.org (accesat la 14 noiembrie 2016 )
  15. „  Pentru a câștiga jocul, companiile trebuie să-și accentueze reflexele cu Apache Spark!”  ", Lesechos.fr ,26 ianuarie 2016( citiți online , consultat la 9 noiembrie 2016 )
  16. https://github.com/EclairJS/eclairjs

Vezi și tu

Articole similare

linkuri externe