BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

Услуги

  • Переход на отечественные BI и DWH системы
  • Консалтинг
    • Проект внедрения российской BI-платформы
  • План обучения и сертификации
  • Бесплатное обучение
  • Пилотный проект
  • Сопровождение и поддержка
  • Технические задания
  • Сбор требований для проекта внедрения BI-системы
  • Аудит BI приложений и DWH
  • Разработка BI Стратегии
  • Styleguide для BI-системы
  • Выделенная команда
  • Как выбрать подходящую современную BI-систему
  • Настойка и поддержка баз данных

Отраслевые решения

  • Дистрибуция
  • Розничная торговля
  • Производство
  • Операторы связи
  • Банки
  • Страхование
  • Фармацевтика
  • Нефтегазовый сектор
  • Лизинг
  • Логистика
  • Медицина
  • Сеть ресторанов
  • Сельское хозяйство и агрохолдинги
  • Энергетика
  • E-Commerce
  • FMCG
  • Пищевая промышленность
  • Селлеры на маркетплейсах
  • Строительные компании и девелоперы

Функциональные решения

  • Управление по KPI
  • Финансы
  • Продажи
  • Склад
  • Категорийный менеджмент
  • HR
  • Маркетинг
  • Внутренний аудит
  • Геоаналитика, аналитика на географической карте
  • Цепочка поставок (SCM)
  • S&OP и FP&A
  • Разработка стратегии цифровой трансформации
  • Process Mining
  • Интегрированное планирование (IBP)
  • Закупки
  • ИТ (CIO)
  • Построение хранилища данных
  • Создание Data Lake и Data Engineering
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Что такое Apache Flink

Что такое Apache Flink

Apache Flink является распределенной платформой обработки данных с открытым исходным кодом, разработанной Apache Software Foundation для использования данных в больших приложениях, прежде всего, для анализа данных, хранящихся в кластерах Hadoop. Поддерживает комбинацию обработки в оперативной памяти и на основе диска.

 

История развития

Flink, что на немецком языке означает быстрый или проворный, является открытым исходным кодом платформы для распределенного потока и пакетной обработки данных. Первоначально названный Стратосфера (2010) перед добавлением в программу инкубатор от Apache (2014), Flink был разработан в Техническом университете Берлина, чтобы быть заменой для Hadoop MapReduce (в рамках программного обеспечения для распределенных вычислений больших наборов данных), используя подход ориентированного графа, устраняя необходимость в отображении и сокращения.

 

Архитектура

Архитектура Apache Flink изображена на рисунке 1.

Рисунок 1 – Архитектура Apache Flink

Программы Flink после запуска сопоставляются потокам данных. Каждый поток данных Flink начинается с одного или нескольких источников (входные данные, которые берутся, например, из очереди сообщений или файловой системы) и заканчивается одним или несколькими приемниками (выходные данные, которые отправляются, например, в очередь сообщений, файловую систему или базу данных). В потоке может быть выполнено произвольное число преобразований. Эти потоки могут быть организованы как ориентированный, ациклический граф потока данных, позволяющий приложению распределять и объединять потоки данных.

Flink предлагает готовые коннекторы с Apache Kafka, Amazon Kinesis, HDFS, Apache Cassandra и др.

 

Потоковая и пакетная обработка данных

Flink может работать как в пакетном режиме, так и в потоковом режиме.

  • Потоковый режим предназначен для обработки неограниченных потоков данных. Неограниченные потоки имеют начало, но их конец не определен. Они не прерываются и предоставляют данные по мере их создания. Неограниченные потоки должны непрерывно обрабатываться, т. е. события должны быть оперативно обработаны после их поступления. Невозможно дождаться появления всех входных данных, поскольку вход неограничен и не будет завершен в какой-то момент времени. Обработка неограниченных данных часто требует, чтобы события принимались в определенном порядке, например, в порядке, в котором происходили события, чтобы иметь возможность обосновать полноту результата.
  • В пакетном режиме обрабатываются потоки данных, которые имеют определенные начальные и конечные значения. Такие потоки могут обрабатываться путем проглатывания всех данных перед выполнением любых вычислений. Для их обработки упорядоченный прием не требуется, потому что ограниченный набор данных всегда можно отсортировать.

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

 

Интеграция

Flink интегрируется со всеми основными системами управления кластерами, такими как Hadoop YARN, Apache Mesos и Kubernetes, а также может быть настроен для работы в качестве автономного кластера.

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

При развертывании приложения Flink автоматически идентифицирует требуемые ресурсы на основе настроенного параллелизма приложения и запрашивает их из системы управления кластером. В случае сбоя Flink заменяет контейнер, запрашивая новые ресурсы. Отправка и управление приложением происходит через REST. Это облегчает интеграцию Flink в различных средах.

 

Запуск крупномасштабных приложений

Flink предназначен для запуска приложений с непрерывным потоком данных в любом масштабе. Приложения могут распараллеливаться в тысячи задач, которые распределяются и выполняются в кластере одновременно. Таким образом, приложение может использовать практически неограниченное количество процессоров, основной памяти, дискового и сетевого ввода-вывода. Кроме того, Flink легко поддерживает очень большое состояние приложения. Его асинхронный и инкрементный контрольный алгоритм обеспечивает минимальное влияние на задержки обработки, гарантируя точную согласованность состояния за один раз.

По словам пользователей приложения, запущенные с помощью Flink, которые работают в их производственных средах, могут:

  • обрабатывать несколько триллионов событий в день;
  • поддерживать несколько терабайт состояния;
  • работать на тысячах ядер.

 

Эффективное использование памяти

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

 

API

Apache Flink включает в себя два основных API: DataStream API для ограниченных или неограниченных потоков данных и DataSet API для ограниченных наборов данных. Flink также предлагает Table API, который является SQL-подобным языком выражения для реляционного потока и пакетной обработки, который может быть легко встроен в DataStream API и DataSet API. Язык высокого уровня, поддерживаемый Flink, - это SQL, который семантически похож на Table API и представляет собой программы в виде SQL-запросов.

DataStream API позволяет преобразовывать объекты (например, фильтры, агрегации, оконные функции) в ограниченные или неограниченные потоки данных. API DataStream включает в себя более 20 различных типов преобразований и доступен в Java и Scala.

DataSet API позволяет преобразовывать объекты (например, фильтры, сопоставления, объединения, группировки) в ограниченные наборы данных. DataSet API включает в себя более 20 различных типов преобразований и доступен в Java, Scala и экспериментальном Python API. DataSet API концептуально похож на DataStream API.

Table API - это SQL-подобный язык выражений, предназначенный для реляционных потоков и пакетной обработки, который может быть встроен в Java и Scala DataSet API и DataStream API. Table API и интерфейс SQL работают с реляционной абстракцией Table. Таблицы могут быть созданы из внешних источников данных или из существующих DataStreams и DataSets. Table API поддерживает реляционные операторы, такие как выбор, агрегация и объединение в таблицах.

Данные из таблиц также могут запрашиваться с помощью обычного SQL. Table API и SQL предлагают эквивалентную функциональность и могут использоваться одновременно в одной и той же программе. Когда таблица преобразуется обратно в DataSet или DataStream, логический план, который был определен реляционными операторами и SQL-запросами, оптимизируется с использованием Apache Calcite и преобразуется в программу DataSet или DataStream.

 

Другие особенности

Также Apache Flink обладает следующими свойствами:

  • Высокая производительность и низкое время ожидания
  • Поддержка временных событий и неисправных событий
  • Особо гибкие потоковые окна
  • Непрерывная потоковая модель передачи с обратным воздействием
  • Отказоустойчивость
  • Одна среда выполнения для потоковой передачи и пакетной обработки
  • Управление памятью
  • Число итераций и Delta-Итерации
    • Специализированная поддержка для итерационных вычислений (машинное обучение, анализ графика)
    • Delta-Итерации используют вычислительные зависимости для более быстрой сходимости
  • Программа оптимизатор
  • приложения потоковой передачи данных (DataStream API)
  • приложений пакетной обработки данных (DataSet API)
  • Библиотека экосистемы для машинного обучения, аналитических графиков и реляционной обработки данных

 

Конкуренты

У Apache Flink имеются конкурентные продукты. Далее представлен список этих продуктов.

  • Hadoop MapReduce
  • Apache Spark
  • Apache Storm
  • Apache Tez
  • Apache Apex

 

Анализ Apache Flink

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

Рисунок 2 – Анализ больших данных

 

Достоинства

Можно выделить ряд достоинств Apache Flink:

  • Способен выполняться в обоих режимах
  • обработка и аналитика данных в режиме реального времени
  • Высокая производительность и низкое время ожидания
  • Отказоустойчивость
  • Одна среда для потоковой передачи и пакетной обработки
  • Имеет систему управления собственной памяти
  • Итерационные вычисления
  • Автоматически собирает и оптимизирует программы
  • Совместимость с:
    • Работает на YARN
    • Работает с HDFS
    • потоками данных от Kafka
    • Можно выполнить программный код Hadoop
    • Apache HBase
    • Google Cloud Platform
    • Tachyon
    • пакет совместимости с Storm
  • Предложения API-интерфейсов в Java и Scala, которые являются "очень простыми в использовании"
  • Активно поддерживается (последний стабильный выпуск был 29 ноября 2018 г.)

 

Недостатки

Однако Apache Flink обладает рядом недостатков, таких как:

  • Не обеспечивает собственную систему хранения данных
  • Данные должны храниться в распределенных системах хранения данных, как HDFS или HBase
  • Входные данные берутся из очередей сообщений, как Kafka
  • Библиотеки все еще в бета-режиме

 

Установка

Установка Java

Apache Flink требует установки Java.

  • Установка Python Software
$ sudo apt-get install python-software-properties
  • Добавить в репозиторий
$ sudo add-apt-repository ppa:webupd8team/java
  • Обновление списка
$ sudo apt-get update
  • Установка Java
$ sudo apt-get install oracle-java7-installer
  • Проверка установки. Чтобы проверить завершена ли успешно установка Java и какая версия установлена, используется следующая команда.
$ java -version

 

Установка Apache Flink

Установка непосредственно Apache Flink происходит так:

  • Скачивание Apache Flink

Вы можете скачать Apache Flink с официального сайта.

  • Распаковка файла установки

Переместить загруженный установочный файл в домашний каталог и запустить следующую команду для извлечения Flink:

$ tar xzf flink-1.1.3-bin-hadoop1-scala_2.10.tgz
  • Переименование каталога установки
$ mv flink-1.1.3/ flink

Чтобы запустить Apache Flink надо перейти в каталог Apache Flink

$ cd flink
  • Начало работы Apache Flink

Для запуска Apache Flink в локальном режиме используйте следующую команду

/flink$ bin/start-local.sh
  • Проверка состояния

Проверьте состояния запущенных служб

/flink$ jps

Должен быть следующий вывод:

6740 Jps
6725 JobManager

Чтобы запустить Apache Flink используйте localhost:8081

 

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Data Vault: Методика загрузки
Следующая статья →
Apache Kafka: что это и как работает
Запросить видео презентацию Запросить доступ к демо стенду online

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • СберКорус (Группа компаний Сбербанка) – это ИТ‑компания, ИТ‑интегратор, SaaS-провайдер. Является разработчиком цифровых сервисов и услуг для автоматизации широкого диапазона бизнес-процессов юридических лиц. В 2004 году компания стала первым в России оператором электронного документооборота, а в 2012 году вошла в экосистему Сбера. 

  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • ООО "Уральская транспортная компания" — это транспортно-логистическая компания, специализирующаяся на железнодорожных перевозках грузов, создана в 2009 году.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.