Где и как используется Apache Samza: реальные примеры Big Data проектов

Big Data, Большие данные, архитектура, обработка данных, Spark, Hadoop, Kafka

Apache Samza часто сравнивают с другими Big Data фреймворками распределенных потоковых вычислений в реальном времени (Real Time, RT): Kafka Streams, Spark Streaming, Flink и Storm. Apache Spark и Flink обладают практически одинаковым набором функциональных возможностей и компонентов, поэтому их можно сравнивать между собой более-менее объективно. Apache Samza является более простой средой, которая в некоторых случаях может конкурировать с Kafka Streams и Storm. Сегодня мы расскажем, как именно Apache Samza используется на практике и почему крупные data-driven компании выбирают этот фреймворк потоковых RT-вычислений. За и против Apache Samza: когда выбирать Прикладные варианты использования Apache Samza (use-cases) обусловлены достоинствами и недостатками этой Big Data системы. В частности, Samza сохраняет состояние приложений (stateful), используя отказоустойчивую систему контрольных точек, реализованную как локальное хранилище значений Далее …

Где и как в Big Data используется Apache Storm: примеры применения

Apache Storm, Big Data, Большие данные, архитектура, обработка данных, Spark, Hadoop, Kafka

Apache Storm (Сторм, Шторм) часто употребляется в контексте других BigData инструментов для распределенных потоковых вычислений в реальном времени (Real Time, RT): Spark Streaming, Kafka Streams, Flink и Samza. Однако, если Apache Spark и Flink по функциональным возможностям и составу компонентов еще могут конкурировать между собой, то сравнивать с ними Шторм, предназначенный только для относительно простой по логике распределенной обработки потоковых событий, не совсем объективно. Более целесообразно выбирать между Сторм и Apache Samza, что мы рассмотрим в нашей следующей статье. А сегодня поговорим о том, где используется Apache Storm и в каких случаях следует применять именно этот Big Data фреймворк потоковых RT-вычислений. Apache Storm – Hadoop для потоков Big Data Чтобы понять, где стоит использовать Шторм, следует вспомнить историю его появления. Далее …

Apache Flink vs Spark: что и когда выбрать для потоковой обработки Big Data

Flink vs Spark, Big Data, Большие данные, архитектура, обработка данных, Apache Spark

Flink часто сравнивают с Apache Spark, другим популярным инструментом потоковой обработки данных. Оба этих распределенных отказоустойчивых фреймворка с открытым исходным кодом используются в высоконагруженных Big Data приложениях для анализа данных, хранящихся в кластерах Hadoop [1] и других кластерных системах. В этой статье мы поговорим, чем похожи и чем отличаются Флинк и Спарк, а также рассмотрим, в каких случаях оптимально выбрать тот или иной продукт. 5 сходств Apache Flink и Spark Apache Flink и Spark во многом очень похожи: у них одно прикладное назначение и похожие особенности реализации кластерной обработки потоковых данных. Также для них обоих характерны следующие свойства: оба продукта вышли из академической среды – Спарк из университета Беркли (UC Berkley), а Флинк – из берлинского ВУЗа TU University [2]; оба решения поддерживают Далее …

Что выбрать для потоковой обработки Big Data: Apache Kafka Streams или Spark Streaming

Kafka, Big Data, Большие данные, архитектура, обработка данных, Spark

Проанализировав сходства и различия Apache Kafka Streams и Spark Streaming, можно сделать некоторые выводы относительно выбора того или иного решения в качестве основного инструмента потоковой обработки Big Data. В этой статье мы собрали для вас аргументы в пользу Кафка Стримс и Спарк Стриминг в конкретных ситуациях, а также нашли некоторые примеры их практического использования. Когда стоит выбрать Apache Kafka Streams Напомним, что Apache Kafka Streams – это клиентская библиотека для разработки распределенных потоковых приложений и микросервисов, в которых входные и выходные данные хранятся в кластерах Кафка. Кафка Стримс будет отличным инструментом потоковой обработки информации в следующих случаях: если источники входных и выходных данных находятся только в кластере Кафка, без подключения к сторонним Big Data системам [1]; когда необходим быстрый запуск Далее …

ТОП-7 сходств и различий между Apache Kafka Streams и Spark Streaming

Kafka, Big Data, Большие данные, архитектура, обработка данных, Spark

Сегодня мы рассмотрим популярные Big Data инструменты обработки потоковых данных: Apache Kafka Streams и Spark Streaming: чем они похожи и чем отличаются. Стоит сказать, что Спарк Стриминг и Кафка Стримс – возможно, наиболее популярные, но не единственные средства обработки информационных потоков Big Data. Для этой цели существует еще множество альтернатив, например, Flink, Storm, Samza, сравнению которых посвящена наша отдельная статья. Что общего между Apache Kafka Streams и Spark Streaming Прежде всего перечислим следующие сходства Кафка Стримс и Спарк Стриминг: надежность и отказоустойчивость – оба инструмента широко используются на практике в качестве инструментов потоковой обработки Big Data в реальных высоконагруженных проектах; распределенная архитектура, которая обеспечивает масштабируемость и высокую скорость обработки потоковых данных, позволяя выполнять код с помощью параллельных задач, распределенных по узлам Далее …

Путешествуем во времени и пользовательском пространстве с Apache Kafka Streams

Kafka, Big Data, Большие данные, архитектура, обработка данных, Кафка Стримс

В этой статье мы продолжим говорить про основы Apache Kafka Streams для начинающих и рассмотрим одно из самых важных свойств Кафка – возможность обработки любых данных, накопленных с начала работы Big Data системы. Что такое окна Apache Kafka Streams и зачем они нужны Кафка обеспечивает объективную достоверность накопленных исторических данных благодаря сохранению сообщений на диске в журнале и их реплицированию по узлам кластера [1]. На практике очень часто возникает задача выбора только определенных данных из всего объема информации, накопленного от запуска Big Data системы по настоящий момент. К примеру, требуется определить количество биржевых операций, проведенных с акциями конкретной компании за последние 10 минут, или число пользователей, кликнувших на новый рекламный баннер в течение четверти часа. В терминологии Apache Kafka такие Далее …

DSL и Processor API в Apache Kafka Streams для распределенной обработки потоковых данных

Kafka, Big Data, Большие данные, архитектура, обработка данных

Как мы уже писали, в Apache Kafka Streams таблица и поток данных – это базовые и взаимозаменяемые понятия. Сегодня поговорим о том, как работать с этими объектами Big Data с помощью внутренних средств Кафка Стримс, используя готовые методы высокоуровневого языка DSL и низкоуровневый API-интерфейс для распределенной обработки потоковых данных в рамках собственной топологии. Также в эту статью мы включили для вас некоторые примеры программного кода с комментариями. Как реализовать топологию потоковой обработки в Apache Kafka Streams Существуют 2 способа определения топологии потоковой обработки Big Data в контексте логической абстракции программного кода, о которой мы рассказывали здесь [1]: высокоуровневый язык Kafka Streams (DSL, Domain Specific Language), реализующий типовые операции преобразования данных (map, filter, join, aggregation); низкоуровневый API-интерфейс обработчика (Processor API), который позволяет Далее …

Как работает Apache Kafka Streams: архитектура и топология внутренних обработчиков потоков

Kafka, Big Data, Большие данные, архитектура, обработка данных

В продолжение темы про основы Apache Kafka Streams для начинающих, сегодня мы поговорим про то, как абстрактные понятия топика (topic), таблицы (table) и потока (stream) позволяют распараллелить обработку информационных потоков. Читайте в нашем новом материале, что такое обработчики потоков Кафка Стримс, как они обрабатывают разделы топиков (topic partition) Kafka и как это связано с потоками изменений (таблицами). Что такое обработчик потоков Apache Kafka Streams Напомним, что главная абстракция Kafka Streams – это поток – неограниченный и постоянно обновляемый набор данных в виде упорядоченной, воспроизводимой и отказоустойчивой последовательности неизменяемых парных записей «ключ-значение» (key-value). Вычислительная логика приложений потоковой обработки, использующих библиотеку Apache Kafka Streams, работает по графовой модели обработчиков потоков (вершин), связанных между собой потоками (ребрами). В этой топологии обработчик является узлом Далее …

Основы Apache Kafka Streams: чем отличаются потоки от таблиц и топиков

Кафка, Big Data, Apache Kafka Streams

Сегодня мы поговорим про базовые понятия Apache Kafka Streams: потоки, таблицы и топики Кафка. Читайте в нашей статье, как Stream, Table и Topic связаны между собой, чем они похожи, когда таблица становится потоком и почему это обеспечивает эластичность и отказоустойчивость распределенных потоковых приложений Big Data. Что такое таблица, топик и поток Kafka Напомним, что одним из ключевых достоинств Apache Kafka является возможность отслеживания каждого произошедшего события, т.е. эта платформа обработки информационных потоков является объективным источником исторических данных. На этом основаны следующие базовые концепции Кафка, суть которых отличаются от аналогичных терминов реляционных баз данных [1]: Топик (Topic) – неограниченная последовательность пар «ключ-значение» (key-value), где ключи и значения — это обычные массивы байтов (<byte[], byte[]>); Поток (Stream) – конструкция 1-го порядка, полная Далее …

5 достоинств и пара недостатков Apache Kafka Streams API для DevOps-инженера Big Data систем

Kafka, Big Data, Большие данные, архитектура, обработка данных, DevOps

Мы уже рассказывали про Apache Kafka Streams API. В продолжение этой темы, сегодня отметим ключевые преимущества этой технологии, особенно важные для DevOps-инженера и разработчика Big Data систем, а также поговорим про некоторые недостатки и возможные альтернативы Кафка Стримс API. 5 главных достоинств Apache Kafka Streams API Для DevOps-инженера Big Data систем наиболее значимыми являются следующие преимущества Apache Kafka Streams API [1]: Мощность масштабируемость, эластичность и отказоустойчивость распределенных приложений; поддержка семантики однократной обработки (exactly-once); обработка с сохранением (statefull) и без сохранения состояний (stateless); обработка событий во времени с использованием окон, объединений, агрегаций; поддержка интерактивных запросов для объединения потоков и баз данных; сочетание максимального контроля и гибкости: наличие декларативного и функционального API высокого уровня (DSL, Domain Specific Language, похожего на разработку в Далее …