В чем разница между Apache Spark и Apache Flink? [закрытый]



в чем разница между Apache Spark и Apache Flink?



будет Apache Flink заменить Hadoop?

721   6  

6 ответов:

во-первых, что у них общего? Flink и Spark - это как универсальные платформы обработки данных, так и проекты верхнего уровня Apache Software Foundation (ASF). Они имеют широкую область применения и могут использоваться для десятки больших сценариев. Благодаря расширениям как SQL-запросы (Искра: Искра SQL, то Флинк: MRQL), графической обработки (СПАРК: Graphxбыл, Флинк: отказались (базы) и желе(библиотека)), машинного обучения (СПАРК: MLlib, Флинк: Флинк мл) и потоковой обработки (Искра Потоковое, Flink Streaming). Оба они способны работать в автономном режиме, но многие из них используют их поверх Hadoop (YARN, HDFS). Они делят сильное представление должное к их в природе памяти.

однако, как они достигают этого разнообразия и случаи, на которых они специализируются, отличаются.

отличия: Сначала я хотел бы предоставить две ссылки, которые подробно описывают различия между Flink и Spark, прежде чем подводить итоги. Если у вас есть время посмотри на Apache Flink-это 4G от BigData Analytics Framework и мерцание и Искра сходства и различия

В отличие от Flink, Spark не способен обрабатывать наборы данных больше, чем ОЗУ до версии 1.5.x

Флинк оптимизирован для циклических или итерационных процессов с помощью итерационных преобразований в коллекциях. Это достигается за счет оптимизации алгоритмов соединения, цепочки операторов и повторного использования разделение и сортировка. Тем не менее, Flink также является сильным инструментом для пакетной обработки. Flink streaming обрабатывает потоки данных как истинные потоки, т. е. элементы данных немедленно "конвейеризуются", хотя потоковая программа, как только они поступают. Это позволяет выполнять гибкие оконные операции над потоками. Он даже способен обрабатывать поздние данные в потоках с помощью водяных знаков. Кроме того, Flink обеспечивает очень сильный режим совместимости, который позволяет использовать существующий шторм, карту сводить. ,.. код на движке выполнения flink

Искра С другой стороны, он основан на устойчивых распределенных наборах данных (RDDs). Эта (в основном) структура данных в памяти дает возможность использовать парадигму функционального программирования sparks. Он способен на больших вычислений серии путем закреплять память. Spark streaming обертывает потоки данных в мини-пакеты, т. е. собирает все данные, поступающие в течение определенного периода времени, и запускает обычную пакетную программу на собранных данных. В то время как выполняется пакетная программа, собираются данные для следующего мини-пакета.

заменит ли Флинк Hadoop?

нет, не будет. Hadoop состоит из различных частей:

  • HDFS-Hadoop Распределенная Файловая Система
  • пряжа - еще один Переговорщик Ресурсов (или менеджер ресурсов)
  • MapReduce-The пакетная обработка базы of Hadoop

HDFS и YARN по-прежнему необходимы как неотъемлемая часть кластеров BigData. Они создают основу для других распределенных технологий, таких как распределенные механизмы запросов или распределенные базы данных. Основным вариантом использования MapReduce является пакетная обработка для наборов данных, превышающих объем ОЗУ кластера, в то время как Flink предназначен для потоковой и итерационной обработки. Так что в общем эти два могут сосуществовать, хотя я бы настоятельно рекомендовал перейти с flinks сильнее и более простые в использовании пакетные возможности.

согласно Apache Flink & Искра страницы документации:

Apache Flink-это платформа с открытым исходным кодом для распределенной потоковой и пакетной обработки данных

Apache Spark™ - это быстрый и общий движок для крупномасштабной обработки данных.

обработка потока в реальном времени-это USP Apache Flink.

Flink предоставляет выразительные API, которые позволяют программистам быстро разрабатывать потоковая передача данных приложений.

Флинк построен, чтобы быть хорошим пряжа гражданин (которого Искра еще не совсем достигла), и он может запускать существующие MapReduce задания непосредственно на его исполнительном механизме.

взгляните на это статьи форма infoworld болото опубликовано Ян Пойнтер для более подробной информации.

ключ различия из блога, опубликованного VON HANS-PETER ZORN UND JASIR ЭЛЬ-СОБХИ

  1. Обработка Потоков: пока Искра это пакетно-ориентированная система, которая работает на кусках данных, называемых RDDs, Apache Флинк это система обработки потока, способная обрабатывать строку за строкой в режиме реального времени.
  2. итераций: используя свою потоковую архитектуру,Флинк позволяет изначально перебирать данные, что-то Искра поддерживает только как партии
  3. Управление Памятью:Искра задания должны быть оптимизированы и адаптированы к конкретным наборам данных, потому что вам нужно вручную управлять разделением и кэшированием, если вы хотите получить его правильно
  4. зрелость:Флинк все еще находится в зачаточном состоянии и имеет только несколько производственных развертываний
  5. Поток Данных: в отличие от процедурной парадигмы программирования Флинк следует подходу распределенного потока данных. Для операций набора данных, где требуются промежуточные результаты в дополнение к регулярному вводу операции, широковещательные переменные используются для распределения предварительно вычисленных результатов по всем рабочим узлам

Что касается вашего второго вопроса, ни Флинк, ни Искра может заменить Hadoop с.

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

HDFS (распределенная файловая система Hadoop)и пряжа (еще один переговорщик ресурсов), которые являются частью большой экосистемы Hadoop не может быть заменен на Flink

взгляните на это flink-vs-spark презентация Slim Baltagi, Директор Big data engineering, Capital One.

программы Flink оптимизируются оптимизатором на основе затрат (например, SQL-движки). Таким образом, приложения Flink будут нуждаться в перенастройке и обслуживании всякий раз, когда характеристики кластера изменяются и данные развиваются с течением времени.

с точки зрения разработчика:

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

но, на мой взгляд, Flink-лучший выбор, потому что мне не нужно сталкиваться с такими проблемами "из памяти" во время разработки. У Flink есть собственный менеджер памяти, поэтому в целом вам не нужно заботиться об этом.

одной из уникальных особенностей Flink является обработка потоков данных вне порядка с использованием водяные знаки

Spark обеспечивает почти потоковое вещание в реальном времени из-за архитектуры микро-дозирования, в то время как Apache Flink обеспечивает истинный реальный поток в реальном времени из-за чистой архитектуры streamig на основе архитектуры Kappa. Это доказано приложением Yahoo streaming Benchmark, а затем снова расширенным приложением Yahoo streaming.. Просмотрите видео, которое объясняет эту деталь и помогло мне понять ее. https://www.youtube.com/watch?v=WTBsMTpR-mE

Comments

    Ничего не найдено.