16

Apache Apex - to zunifikowana platforma do przetwarzania strumieniowego i przetwarzania wsadowego typu open source dla przedsiębiorstw. Jest używany w platformie GE Predix dla IOT. Jakie są kluczowe różnice między tymi dwoma platformami?Jakie są różnice między Apache Spark i Apache Apex?

Pytania

  1. Z danych naukowego punktu widzenia, czym różni się od Spark?
  2. Czy Apache Apex zapewnia taką funkcjonalność jak Spark MLlib? Jeśli musimy zbudować skalowalne modele ML na wierzchołku Apache, jak to zrobić?
  3. Czy naukowcy zajmujący się danymi będą musieli nauczyć się języka Java, aby zbudować skalowalne modele ML? Czy ma Pythona API jak pyspark?
  4. Czy Apache Apex może być zintegrowany ze Spark i czy możemy używać Spark MLlib na szczycie Apexa do budowania modeli ML?
+2

prostu zastanawiasz się, dlaczego ten dostał się głosowanie! – daemon12

+1

To samo tutaj. Jestem w szoku, widząc tak wiele głosów negatywnych. Czy ktoś może wyjaśnić? To bardzo konkretne pytanie. –

+0

bardzo szczegółowe porównanie tutaj http://www.slideshare.net/ApacheApex/architectual-comparison-of-apache-apex-and-spark-streaming – ashwin111

Odpowiedz

18
  1. Apache Apex silnik do przetwarzania danych strumieniowych. Niektóre inne, które próbują osiągnąć to samo, to burza Apache, migotanie Apache. Innym czynnikiem wyróżniającym Apache Apex jest: wbudowane wsparcie dla odporności na błędy, skalowalności i skupienia na funkcjonalności, które są kluczowymi czynnikami w przypadku użycia produkcyjnego.

Porównanie ze Spark: Apache Spark jest w rzeczywistości przetwarzaniem wsadowym. Jeśli weźmiesz pod uwagę transmisję Spark (która używa iskry pod spodem), to jest przetwarzanie mikrokontrolowane. W przeciwieństwie do Apache apex jest prawdziwym przetwarzaniem strumienia. W pewnym sensie, rekord przychodzący NIE musi czekać na następny rekord do przetworzenia. Rekord jest przetwarzany i wysyłany do następnego poziomu przetwarzania, gdy tylko nadejdzie.

  1. Obecnie trwają prace postępu na dodanie wsparcia dla integracji Apache Apex z bibliotekami uczenia maszynowego, takich jak Apache Samoa, H2O odnoszą https://issues.apache.org/jira/browse/SAMOA-49

  2. Obecnie posiada wsparcie dla Java, Scala.
    https://www.datatorrent.com/blog/blog-writing-apache-apex-application-in-scala/ Dla Pythona, możesz wypróbować to używając Jython. Ale nie próbowałem tego sam. Więc nie jestem tego pewien.

  3. Integracja ze Spark może nie być dobrym pomysłem, ponieważ są to dwa różne silniki przetwarzania. Jednak integracja Apache apex z bibliotekami uczenia maszynowego jest w toku.

Jeśli masz jakiekolwiek inne pytania, prośby o funkcje można zamieszczać je na liście dyskusyjnej dla Apache użytkowników wierzchołkowych: https://mail-archives.apache.org/mod_mbox/incubator-apex-users/

+0

Dzięki! Czy możesz wyjaśnić swoje uwagi dotyczące przetwarzania mikropaskowego? Masz na myśli, mówiąc w "mikro-partii", przychodzące rekordy będą przetwarzane dopiero po nadejściu następnego rekordu, czy tak jak w Apeksie, zapisy nie muszą czekać na jakiekolwiek przetwarzanie? –

+0

Również na dzień dzisiejszy uruchamianie skalowalnego ML na Apeksie nie jest odpowiednią opcją? Czy Apex jest pisany scalaowo jak iskra? –

+2

Aby odpowiedzieć na pytania, 1) Tak, Apex przetwarza rekordy po ich otrzymaniu, nie musisz czekać. Podczas gdy Spark czeka na kawałek rekordów, aby przybyć przed ich przetwarzaniem. 2) Obecnie Apex nie ma implementacji ML 3) Apex jest napisany natywnie w Javie, z obsługą Scala – daemon12