2016-04-14 5 views
9

Apache Apex похож на Apache Storm.Как Apache Apex отличается от Apache Storm?

  • Пользователи создают приложение/топологию как ориентированный ациклический график (DAG) на обеих платформах. Apex использует операторы/потоки, а Storm использует носики/потоки/болты.
  • Оба они обрабатывают данные в реальном времени, а не пакетную обработку.
  • И, кажется, имеют высокую пропускную способность & низкой латентностью

Таким образом, на первый взгляд, оба выглядят похоже, и я не совсем получать разницу. Может кто-нибудь, пожалуйста, объясните, каковы основные отличия? Другими словами, когда я должен использовать один вместо другого?

+0

Добавить Apache Flink и Apache Beam, все процессоры DAG – user3613754

+0

Также, пожалуйста, добавьте прецеденты, я предпочитаю, какой вариант использования подходит для каждого. – ChikuMiku

ответ

4

Существуют фундаментальные различия в архитектуре, которые делают каждую платформу очень различной с точки зрения латентности, масштабирования и управления состоянием.

На самом базовом уровне,

  1. Apache Сторм использует запись подтверждения, чтобы гарантировать доставку сообщений.
  2. Apache Apex использует контрольную точку, чтобы гарантировать доставку сообщений.

Вы можете узнать больше различий в следующем блоге, который также включает в себя другие основные платформы обработки потоков.

https://databaseline.wordpress.com/2016/03/12/an-overview-of-apache-streaming-technologies/

2

Архитектура и особенности

+-------------------+---------------------------+---------------------+ 
|     |   Storm   |   Apex  | 
+-------------------+---------------------------+---------------------+ 
| Model    | Native Streaming   | Native Streaming | 
|     | Micro batch (Trident  |      | 
+-------------------+---------------------------+---------------------+ 
| Language   | Java.      | Java (Scala)  | 
|     | Ability to use non  |      | 
|     | JVM languages support  |      | 
+-------------------+---------------------------+---------------------+ 
| API    | Compositional    | Compositional (DAG) | 
|     | Declarative (Trident)  | Declarative   | 
|     | Limited SQL    |      | 
|     | support (Trident)   |      | 
+-------------------+---------------------------+---------------------+ 
| Locality   | Data Locality    | Advance Processing | 
+-------------------+---------------------------+---------------------+ 
| Latency   | Low      | Very Low   | 
|     | High (Trident)   |      | 
+-------------------+---------------------------+---------------------+ 
| Throughput  | Limited in Ack mode  | Very high   | 
+-------------------+---------------------------+---------------------+ 
| Scalibility  | Limited due to Ack  | Horizontal   | 
+-------------------+---------------------------+---------------------+ 
| Partitioning  | Standard     | Advance    | 
|     | Set parallelism at work, | Parallel pipes,  | 
|     | executor and task level | unifiers   | 
+-------------------+---------------------------+---------------------+ 
| Connector Library | Limited (certification) | Rich library of  | 
|     |       | connectors in  | 
|     |       | Apex Malhar   | 
+-------------------+---------------------------+---------------------+ 

Работоспособность

+------------+--------------------------+---------------------+ 
|   |   Storm   |   Apex  | 
+------------+--------------------------+---------------------+ 
| State  | External store   | Checkpointing  | 
| Management | Limited checkpointing | Local checkpointing | 
|   | Difficult to exploit  |      | 
|   | local state    |      | 
+------------+--------------------------+---------------------+ 
| Recovery | Cumbersome API to  | Incremental   | 
|   | store and retrieve state | (buffer server)  | 
|   | Require user code  |      | 
+------------+--------------------------+---------------------+ 
| Processing | At least once   |      | 
| Semantic | Exactly once require  | At least once  | 
|   | user code and affect  | End to end   | 
|   | latency     |      | 
|   |       | exactly once  | 
+------------+--------------------------+---------------------+ 
| Back  | Watermark on queue  | Automatic   | 
| Pressure | size for spout and bolt | Buffer server  | 
|   | Does not scale   | memory and disk  | 
+------------+--------------------------+---------------------+ 
| Elasticity | Through CLI only   | Yes w/ full user | 
|   |       | control    | 
+------------+--------------------------+---------------------+ 
| Dynamic | No      | Yes     | 
| topology |       |      | 
+------------+--------------------------+---------------------+ 
| Security | Kerberos     | Kerberos, RBAC,  | 
|   |       | LDAP    | 
+------------+--------------------------+---------------------+ 
| Multi  | Mesos, RAS - memory,  | YARN    | 
| Tenancy | CPU, YARN    | full isolation  | 
+------------+--------------------------+---------------------+ 
| DevOps  | REST API     | REST API   | 
| Tools  | Basic UI     | DataTorrent RTS  | 
+------------+--------------------------+---------------------+ 

Источник: Вебинар: Apache Apex (Next Gen Hadoop) против Шторма - Сравнение и миграции Очерк https://www.youtube.com/watch?v=sPjyo2HfD_I