Каковы различия между Apache Spark и Apache Flink? [закрыто
-
16-10-2019 - |
Вопрос
Проекты Apache-Spark и Apache-Flink требуют почти одинаковых возможностей.
В чем разница между этими проектами. Есть ли какое -либо преимущество в Spark или Flink?
Спасибо
Решение
Flink - это апач переименование Проект стратосферы из нескольких университетов в Берлине. Анкет У него нет той же промышленной опоры и импульса, что и в проекте Spark, но он кажется хорошим и более зрелым, чем, скажем, Dryad. Я бы сказал, что стоит изучить, по крайней мере, для личного или академического использования, но для промышленного развертывания я все равно предпочитаю искру, что на данный момент проходит боевую проверку. Для более технического обсуждения см. этот пост Quora по комитетам в обоих проектах.
Другие советы
Особенное сравнение между Искра против Фальшивый:
Обработка данных
Искра: Apache Spark также является частью экосистемы Hadoop. Это также система пакетной обработки, но она также поддерживает обработку потока.
Фальшивый: Apache Flink обеспечивает одно время выполнения для потоковой и партийной обработки.
Потоковой двигатель
Искра: Apache Spark Streaming обрабатывает потоки данных в микро-партиях. Каждая партия содержит коллекцию событий, которые прибыли в течение периода партии. Но этого недостаточно для вариантов использования, когда нам нужно обрабатывать большие потоки живых данных и обеспечить результаты в режиме реального времени.
Фальшивый: Apache Flink - это истинный потоковой двигатель. Он использует потоки для рабочих нагрузок: потоковая передача, SQL, Micro-Batch и партия. Партия - это конечный набор потоковых данных.
Поток данных
Искра: Хотя алгоритм машинного обучения является циклическим потоком данных, Spark представляет его как (DAG) прямой ациклический график.
Flink: Flink использует другой подход, чем другие. Он поддерживает контролируемый график циклической зависимости во время выполнения. Это помогает представлять алгоритмы машинного обучения очень эффективным образом.
Вычислительная модель
Искра: Spark приняла микроэлемент. Микро-партии-это по сути вычислительная модель «собирать и затем обрабатывать».
Flink: Flink принял постоянный поток, на основе операторов потоковой модели. Оператор непрерывного потока обрабатывает данные, когда он прибывает, без какой -либо задержки в сборе данных или обработке данных.
Производительность
Искра: Хотя Apache Spark имеет отличное сообщество, и теперь он считается большинством зрелых сообществ. Но его обработка потока не очень эффективна, чем Apache Flink, поскольку она использует микроавторанную обработку.
Фальшивый: Производительность Apache Flink отличная по сравнению с любой другой системой обработки данных. Apache Flink использует нативные операторы итерации с замкнутыми петлями, которые делают машинное обучение и обработку графика более быстрее, когда мы сравниваем Hadoop с Spark vs Flink.
Управление памятью
Искра: Он обеспечивает настраиваемое управление памятью. Последний выпуск Spark 1.6 двинулся в направлении автоматизации управления памятью.
Flink: Он обеспечивает автоматическое управление памятью. Он имеет свою собственную систему управления памятью, отделенную от коллекционера мусора Java.
Отказоустойчивость
Искра: Apache Spark Streaming восстанавливает потерянную работу, и без дополнительного кода или конфигурации она обеспечивает точно семантику с точной точностью от коробки. Узнайте больше о достойке иски.
Flink: Механизм устойчивости к разлому, за которым следует Apache Flink, основан на распределенных снимках Chandy-Lamport. Механизм легкий, что приводит к поддержанию высоких показателей пропускной способности и обеспечивает надежные гарантии согласованности одновременно.
Масштабируемость
Искра: Это очень масштабируемо, мы можем продолжать добавлять n количества узлов в кластер. Большой известный кластер Sspark составляет 8000 узлов.
Flink: Apache Flink также очень масштабируется, мы можем продолжать добавлять N -количество узлов в кластере. Большой известный кластер Flink составляет тысячи узлов.
Итеративная обработка
Искра: Он отражает свои данные партиями. В Spark каждая итерация должна быть запланирована и выполнена отдельно.
Flink: Он отражает данные, используя его потоковую архитектуру. Flink может быть проинструктирован только обработать части данных, которые фактически изменились, что значительно увеличивает производительность работы.
Языковая поддержка
Искра: Он поддерживает Java, Scala, Python и R. Spark реализовано в Scala. Он предоставляет API на других языках, таких как Java, Python и R.
Flink: Он поддерживает Java, Scala, Python и R. Flink в Java. Это также обеспечивает Scala API.