В чем разница между Hazelcast Jet и Apache Flink

В частности, какие варианты использования Hazelcast Jet решает, а Flink не решает (одинаково хорошо) и наоборот?


person Atle    schedule 15.02.2017    source источник


Ответы (2)


ПРИМЕЧАНИЕ. Я принадлежу к основной группе инженеров Hazelcast Jet.


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

Если в настоящее время у вас есть приложение Java, работающее в кластере, добавить Jet будет несложно: добавьте зависимость Maven и напишите одну строку кода для запуска экземпляра Jet на локальном члене. Экземпляры самообнаруживаются, чтобы сформировать свой собственный кластер, и теперь вы можете отправить ему свою работу.

Если вам нужен выделенный распределенный вычислительный кластер, вы можете загрузить дистрибутив ZIP на компьютеры кластера. Jet имеет встроенную поддержку наиболее популярных облачных сред, что позволяет начать самостоятельное обнаружение узлов. Затем вы можете подключиться к кластеру с помощью клиента Jet.

Излишне говорить, что Jet очень удобно использовать Hazelcast IMap или IList в качестве источника данных. Кластер Jet может напрямую размещать структуры Hazelcast; тогда вы извлекаете выгоду из локальности данных и получаете данные без сетевого трафика. С другой стороны, выбор источника данных полностью неограничен, и существует общедоступный API, предназначенный для реализации быстрых произвольно секционированных пользовательских источников данных.

Jet решает проблемы обработки бесконечных потоков, таких как агрегация по временным окнам, обработка переупорядоченных событий и устойчивость к изменениям в топологии кластера (например, сбоям отдельных узлов Jet), сохраняя при этом гарантию обработки точно один раз.

Основная парадигма программирования Jet - это Pipeline API, который очень похож на java.util.stream API, но адаптирован к специфике распределенных вычислений (лямбда-сериализация и другие проблемы).

API конвейера основан на модели нижнего уровня на основе DAG, которая также предоставляется как общедоступный API.

person Marko Topolnik    schedule 16.02.2017
comment
Итак, вы можете сказать, что основная мотивация для выпуска Jet - предложить инструмент, который проще в использовании, чем Flink, и что его запланированный набор функций пересекается с текущим рынком? Или вы бы сказали, что Jet - это легкое решение для приложений, которым не требуются те же функции, что и существующие решения? - person Atle; 17.02.2017
comment
Поскольку Jet приближается к выпуску 4.0, я еще раз вернулся к этому вопросу. Я бы сказал, что Jet прокладывает свой собственный путь с помощью поддерживаемого набора функций. Есть много разъемов источника / приемника для взаимодействия с различными внешними системами; есть надежная поддержка потоковых объединений и оконной агрегации; и один вариант использования, который в настоящее время находится в центре внимания, - это развертывание кросс-языковых моделей машинного обучения в распределенном потоковом конвейере. - person Marko Topolnik; 23.01.2020

на мой взгляд, flink предлагает некоторые очень полезные функции потоковой передачи, которых пока нет в hatecast jet.

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

Кроме того, на данный момент он кажется более стабильным и хорошо известным. Например, вы можете использовать его как среду выполнения для Apache Beam, а затем легко переносить между потоком данных Google в облаке и вашим собственным развертыванием. Так что сейчас я бы использовал флинк.

Лучший

person Philipp Grulich    schedule 16.02.2017