In che modo Apache Flink è paragonabile a Mapreduce su Hadoop? In che modo è migliore e perché?In che modo Apache Flink è paragonabile a Mapreduce su Hadoop?
risposta
Disclaimer: Sono un membro committente e PMC di Apache Flink.
Simile a Hadoop MapReduce, Apache Flink è un processore di dati parallelo con una propria API e motore di esecuzione. Flink mira a supportare molti dei casi d'uso in cui Hadoop viene utilizzato e funziona bene con molti sistemi dell'ecosistema Hadoop, tra cui HDFS e YARN.
Risponderò alla tua domanda distinguendo tra il modello di programmazione MapReduce e il modello di esecuzione MapReduce.
modello di programmazione
modello di programmazione di Apache Flink si basa su concetti del modello di programmazione MapReduce ma generalizza in diversi modi. Flink offre funzioni Map e Reduce ma anche trasformazioni aggiuntive come Join, CoGroup, Filter e Iterations. Queste trasformazioni possono essere assemblate in flussi di dati arbitrari tra cui più fonti, sink, flussi di ramificazione e fusione. Il modello di dati di Flink è più generico del modello di coppia chiave-valore di MapReduce e consente di utilizzare qualsiasi tipo di dati Java (o Scala). Le chiavi possono essere definite su questi tipi di dati in modo flessibile.
Di conseguenza, il modello di programmazione di Flink è un super set del modello di programmazione MapReduce. Permette di definire molti programmi in un modo molto più pratico e conciso. Voglio anche sottolineare che è possibile incorporare funzioni Hadoop non modificate (Input/OutputFormats, Mapper, Reducers) nei programmi Flink ed eseguirle insieme alle funzioni native di Flink.
Execution Model
Guardando il modello di esecuzione, Flink prende in prestito molti concetti da sistemi di database relazionali paralleli. Flink presenta un modello di elaborazione pipeline che riduce la necessità di materializzare risultati intermedi su file system locali o distribuiti (inoltre, ciò consente anche a Flink di eseguire l'elaborazione del flusso in tempo reale). Inoltre, l'esecuzione di un programma Flink non è strettamente legata alle specifiche del programma. In MapReduce (come fatto da Apache Hadoop), l'esecuzione di ogni programma MapReduce segue esattamente lo stesso schema. I programmi Flink vengono forniti a un ottimizzatore che individua un piano di esecuzione efficiente. Analogamente al DBMS relazionale, l'ottimizzatore sceglie la spedizione dei dati e le strategie di join in modo tale da evitare operazioni costose quali il mescolamento dei dati e l'ordinamento. Dovrei sottolineare che Flink non è stato testato alla grande scala in cui Hadoop sta girando. Conosco le configurazioni di Flink che funzionano su fino a 200 nodi.
aggiunta alla risposta di Fabian:
Un'altra differenza è che Flink non è un sistema di elaborazione batch puro, ma può allo stesso tempo per l'analisi a bassa latenza streaming e offre una bella API per definire in streaming programmi di analisi .
Internamente, Flink è in realtà un sistema di streaming. Per Flink, i programmi Batch sono un caso speciale di programmi di streaming.
- 1. Introduzione a MapReduce/Hadoop
- 2. zipWithIndex su Apache Flink
- 3. In che modo Apache Flink implementa le iterazioni?
- 4. Qual è la differenza tra Apache Spark e Apache Flink?
- 5. Impossibile usare apache flink in amazon emr
- 6. In che modo jboss forge è paragonabile a spring roo?
- 7. In che modo node-imagemagick è paragonabile a node-gm?
- 8. Apache Flink vs Twitter Airone?
- 9. Ordinamento globale in Apache Flink
- 10. Configurazione Hadoop: mapred. * Vs mapreduce. *
- 11. Ingresso compresso BZip2 per Apache Flink
- 12. riutilizzare JVM in Hadoop mapreduce jobs
- 13. Grado di parallelismo in Apache Flink
- 14. Impossibile eseguire un lavoro MapReduce su hadoop 2.4.0
- 15. Hadoop MapReduce I file di input multiple
- 16. Concatenamento di Hadoop MapReduce con pipe (C++)
- 17. Hadoop: come funziona OutputCollector durante MapReduce?
- 18. In che modo il flusso di lavoro tipico di Git è paragonabile a quello di Mercurial?
- 19. In che modo il supporto UML inVisual Studio 2010 è paragonabile a Visio?
- 20. concatenamento Multi-Riduttori in un lavoro Hadoop MapReduce
- 21. Eccezione nel thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
- 22. Hadoop MapReduce fornire le directory nidificate come input di lavoro
- 23. Apache Flink vs Apache Spark come piattaforme per l'apprendimento automatico su larga scala?
- 24. Algoritmo di coefficiente di clustering locale distribuito (MapReduce/Hadoop)
- 25. È possibile avere più input con più mapper diversi in Hadoop MapReduce?
- 26. API Apache Flink DataStream non ha una trasformazione mapPartition
- 27. Hadoop MapReduce: è possibile definire due mapper e riduttori in una classe di lavoro hasdoop?
- 28. Hadoop MapReduce - un file di output per ciascun input
- 29. In che modo Xamarin per Android (Mono per Android) è paragonabile allo sviluppo nativo di Android?
- 30. Hadoop: Fornire la directory come input per il lavoro MapReduce
Gli hashtag non sono realmente utilizzati nelle domande SO, suggerirei semplicemente di porre la domanda e aggiungere i tag appropriati. –
Grazie Angelo! – Shu