В частности, какие варианты использования Hazelcast Jet решает, а Flink не решает (одинаково хорошо) и наоборот?
В чем разница между Hazelcast Jet и Apache Flink
Ответы (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.
на мой взгляд, flink предлагает некоторые очень полезные функции потоковой передачи, которых пока нет в hatecast jet.
- Различные гибкие оконные операторы, которые также могут обрабатывать вышедшие из строя и просроченные элементы.
- отказоустойчивость на кластере и гарантии доставки
Кроме того, на данный момент он кажется более стабильным и хорошо известным. Например, вы можете использовать его как среду выполнения для Apache Beam, а затем легко переносить между потоком данных Google в облаке и вашим собственным развертыванием. Так что сейчас я бы использовал флинк.
Лучший