Apache Spark vs Apache Storm
Nevoia de streaming de date în timp real crește exponențial din cauza creșterii numărului de date în timp real. Având în vedere că tehnologiile de streaming conduc lumea Big Data, ar putea fi dificil pentru utilizatori să aleagă platforma adecvată de streaming în timp real. Două dintre cele mai populare tehnologii în timp real care ar putea fi luate în considerare pentru a opta sunt Apache Spark și Apache Storm.
O diferență cheie majoră între cadrele Spark și Storm este că Spark efectuează calcule Data-Parallel, în timp ce Storm ocupă calcule Task-Parallel
Apache Spark
Apache Spark este un cadru tehnologic de calcul în clustere, de uz general și foarte rapid, utilizat pentru calcul rapid în procesarea datelor pe scară largă. Acesta poate gestiona atât sarcini de lucru de analiză și de procesare a datelor pe loturi, cât și în timp real.
Apache Storm
Apache Storm este un sistem de calcul de procesare a fluxurilor de date în timp real, scalabil, tolerant la erori și cu sursă deschisă. Este un cadru pentru procesarea distribuită a datelor în timp real, care se concentrează pe procesarea fluxurilor sau pe procesarea evenimentelor. Poate fi utilizat cu orice limbaj de programare și poate fi integrat folosind orice tehnologie de coadă sau de baze de date.
Diferențe între Spark și Storm
- Model de procesare: Apache Spark asigură procesarea pe loturi, în timp ce Storm asigură procesarea pe micro loturi
- Limbaj de programare: Apache spark suportă mai puține limbaje, cum ar fi Java, Scala, în timp ce storm, pe de altă parte, suportă mai multe limbaje, cum ar fi Scala, Java, Clojure.
- Surse de flux: Apache a folosit HDFS, în timp ce Apache Storm folosește spout.
- Mesagerie: Apache apark utilizează Akka, Netty în timp ce Apache storm utilizează ZeroMQ, Netty
- Gestionarea resurselor: Pentru Apache spark sunt responsabile Yarn și Meson, în timp ce pentru Apache storm sunt responsabile Yarn și Mesos.
- Latență: Latență mai mare în comparație cu Apache Spark, în timp ce Apache storm oferă o latență scăzută mai bună cu constrângeri mai mici
- Primitive de flux: Apache Spark utilizează DStream în timp ce Apache Storm utilizează Tuple, Partition
- Costul de dezvoltare: Apache spark utilizează același cod pentru procesarea pe loturi și fluxuri, în timp ce în Apache storm nu se poate utiliza același cod.
- Persistență: Apache spark utilizează per RDD, în timp ce Apache storm utilizează MapState
- Toleranță la erori: În Apache spark se gestionează repornirea lucrătorilor prin intermediul managerului de resurse care poate fi YARN, Mesos sau managerul său independent, în timp ce în Apache storm, dacă procesul eșuează, procesul de supraveghere îl va reporni automat, deoarece gestionarea stării este gestionată prin zookeeper
- Aprovizionare: Apache spark suportă monitorizarea de bază folosind Ganglia, în timp ce Apache storm folosește Apache Ambari
- Randament: Apache spark servește 100k înregistrări pe nod pe secundă, în timp ce Apache storm servește 10k înregistrări pe nod pe secundă.
- Managementul stării: Schimbarea și menținerea stării în Apache Spark poate fi actualizată prin UpdateStateByKey, dar nu se poate aplica nicio strategie conectabilă în sistemul extern pentru implementarea stării. Întrucât Storm nu oferă niciun cadru pentru stocarea oricărei ieșiri de bolț care intervine ca stare. Prin urmare, fiecare aplicație trebuie să creeze o stare pentru ea însăși ori de câte ori este necesar.
- Specialitate: Apache Spark folosește procesarea unificată (batch, SQL etc.) în timp ce Apache Storm folosește RPC distribuit
Apache Storm și Apache Spark sunt soluții excelente care rezolvă problema ingestiei și transformării streaming-ului.
Citește mai mult… http://entradasoft.com/blogs/apache-spark-vs-apache-storm
.