Что такое Apache Flink?
В нынешнем поколении Apache Flink — это гигантский инструмент, представляющий собой не что иное, как 4G больших данных. Это настоящая структура потоковой обработки. Ядро Flink (ядро) — это среда выполнения потоковой передачи, обеспечивающая распределенную обработку, отказоустойчивость. Flink обрабатывает события с постоянной высокой скоростью и малой задержкой. Он обрабатывает данные с молниеносной скоростью. Apache Flink — это крупномасштабная платформа обработки данных, которую мы можем повторно использовать, когда данные генерируются с высокой скоростью. Это важная платформа с открытым исходным кодом, которая может эффективно решать многочисленные проблемы:
- Пакетная обработка
- Итеративная обработка
- Потоковая обработка в реальном времени
- Интерактивная обработка
- Обработка в памяти
- Обработка графиков
Flink — это решение MapReduce, оно обрабатывает данные более чем в 100 раз быстрее, чем MapReduce. Он не зависит от Hadoop, но может использовать HDFS (распределенную файловую систему Hadoop) для чтения, записи, хранения и обработки данных. Flink не предоставляет собственную систему хранения данных. Он берет данные из распределенного хранилища.
Почему Apache Flink?
Flink добровольно использует MapReduce, он обрабатывает данные более чем в 100 раз быстрее, чем MapReduce. Он не зависит от Hadoop, но может использовать HDFS для чтения, записи, хранения и обработки данных. Flink не предоставляет собственную систему хранения данных. Берет данные из распределенной системы хранения. Ключевым видением Apache Flink является преодоление и снижение сложности, с которой сталкивались другие распределенные машины, управляемые данными. Это достигается за счет интеграции оптимизации запросов, обобщений из систем баз данных и эффективных параллельных алгоритмов в памяти и вне ядра с фреймом MapReduce. Таким образом, Apache Flink в значительной степени основан на потоковой модели, Apache Flink итерирует данные с помощью потоковой арматуры. Теперь концепция итеративного алгоритма связана с оптимизатором запросов Flink. Таким образом, конвейерная арматура Apache Flink позволяет быстро перерабатывать потоковые данные с более низким уровнем простоя, чем микропакетные инфраструктуры (Spark).
Возможности Apache Flink
- Низкий уровень простоя и высокая производительность: Apache Flink обеспечивает высокую производительность и низкий уровень простоя без какой-либо сложной конфигурации. Его конвейерная арматура обеспечивает высокую производительность. Он обрабатывает данные с молниеносной скоростью, его также называют 4G больших данных.
- Отказоустойчивость: точка отказоустойчивости, предоставляемая Apache Flink, основана на распределенных кадрах Chandy-Lamport, эта среда обеспечивает надежные гарантии толщины.
- Дублирование: Apache Flink обеспечивает специальную поддержку итерационных алгоритмов (машинная грамотность, обработка графов).
- Управление памятью. Таким образом, операции с памятью в Apache Flink обеспечивают контроль над тем, насколько важной памятью мы пользуемся в определенных операциях во время выполнения.
- Интеграция: мы можем легко интегрировать Apache Flink с другими экосистемами обработки данных с открытым исходным кодом. Его можно интегрировать с Hadoop, акведуками данных из Kafka, его можно запускать на YARN.
Apache Flink — унифицированная платформа
Apache Spark положил начало новой тенденции, предлагая другую платформу для решения различных проблем, но она ограничена из-за своей базовой машины пакетной обработки, которая обрабатывает акведуки также как микропакеты. Flink выдвинул те же возможности вперед, и Flink может решить все типы проблем с большими данными. Apache Flink — это инструмент для вычислений кластера общего назначения, который может выполнять пакетную обработку, интерактивную обработку, потоковую обработку, итеративную обработку, обработку в памяти, обработку графов. Таким образом, Apache Flink — это платформа больших данных нового поколения, также известная как 4G больших данных. Ядро Flink — это среда выполнения потоковой передачи, которая также обеспечивает молниеносную скорость, отказоустойчивость, распределенную обработку, простоту использования и т. д. В основном, Flink обрабатывает данные на постоянной высокой скорости с действительно низким уровнем покоя. Итак, это крупномасштабная платформа обработки данных, которая может повторно использовать данные, сгенерированные на очень высокой скорости.
Экосистема Флинка
1. Хранение/потоковая передача
Flink не соответствует системе хранения; это просто вычислительная машина. Flink может читать и записывать данные из разных систем хранения, а также потреблять данные из потоковых систем. Flink может читать и записывать данные из различных систем хранения/потоков, таких как
- HDFS — распределенная система поездов Hadoop
- Local-FS — это локальная файловая система.
- S3 — простой сервис хранения от Amazon
- HBase — в экосистеме Hadoop HBase — это, по сути, база данных NoSQL.
- MongoDB — база данных NoSQL
- РСУБД — любая реляционная база данных.
- Kafka — Распределенная очередь сообщений
- RabbitMQ — очередь сообщений
- Flume — в основном используется для сбора и агрегирования данных.
Следующий уровень — операция ресурсов/развертывания. Flink может быть размещен в разных режимах
- Локальный режим — на одном узле, в одной JVM.
- Кластер — в многоузловом кластере с директором ресурсов.
- Автономный — это заброшенный директор ресурсов, который упакован с Flink.
- YARN — это очень популярный директор ресурсов, он является частью Hadoop (представлен в Hadoop2.x).
- Mesos — это универсальный директор ресурсов.
- Облако — в облаке Amazon или Google
Следующим уровнем является среда выполнения — поток распределенных потоковых данных, который также называют ядром Apache Flink. Это основной уровень Flink, который обеспечивает распределенную обработку, отказоустойчивость, надежность, собственные возможности итеративной обработки и т. д. Самая верхняя подкаста предназначена для API и библиотеки, которая предоставляет различные возможности для Flink.
2. API набора данных
Он обрабатывает данные в покое, он позволяет каменщику применять такие операции, как диаграмма, сладж, объединение, группировка и т. Д., К набору данных. Он в основном используется для распределенной обработки. На самом деле это частный случай потоковой обработки, когда у нас есть конечный источник данных. Пакетная операция также выполняется во время выполнения потоковой передачи.
3. API потока данных
Он обрабатывает непрерывный поток данных. Он предоставляет красочные операции, такие как диаграмма, отстой, обновление стран, окно, итог и т. Д., Чтобы повторно использовать поток данных в реальном времени. Он может потреблять данные из цветного потокового источника и записывать данные в разные выгребные ямы. Он поддерживает как Java, так и Scala. Теперь давайте добавим некоторые инструменты DSL (Domain Specific Library).
4. Таблица
Это позволяет наркологам выполнять специальный анализ с использованием SQL-подобного языка выражений для реляционного шлюза и пакетной обработки. Его можно встроить в API-интерфейсы Dataset и DataStream. На самом деле, это избавляет наркоманов от написания сложных законов для повторного использования данных, а не позволяет им выполнять SQL-запросы поверх Flink.
5. Желе
Это машина для обработки графов, которая позволяет наркоманам выполнять набор операций для создания, преобразования и повторного использования графа. Gelly также предоставляет библиотеку алгоритма для упрощения разработки графовых операций. Для эффективной обработки графиков он использует собственную итеративную модель обработки Flink. Мы можем использовать его API в Java и Scala.
6. Флинк МЛ
Это библиотека машинного обучения, которая предоставляет интуитивно понятные API и эффективный алгоритм для обработки операций машинной грамотности. Пишем на Scala. Поскольку мы знаем, что алгоритмы машинного обучения являются итеративными по своей природе, Flink обеспечивает встроенную поддержку итерационных алгоритмов для относительно эффективной и действенной обработки.
Архитектура Флинка
Флинк работает по принципу «хозяин-раб». Мастер — это управляющий узел кластера, а рабы — рабочие узлы. Как показано на рисунке, мастер является центральным элементом кластера, куда клиент может отправить работу/задание/операцию. Теперь мастер разделит всю работу на части и представит ее подчиненным в кластере. Таким образом, Flink обладает распределенной вычислительной мощностью, которая позволяет Flink повторно использовать данные с молниеносной скоростью.
Есть два типа ударов главный и подчиненный узел. На главном узле мы настраиваем главный демон Flink, который называется «Диспетчер заданий», а на всех подчиненных узлах подчиненный демон Flink называется «Node Manager».
Модель исполнения Flink
- Программа. Изобретатель написал рабочую программу.
- Разбор и оптимизация. На этом этапе выполняется синтаксический анализ закона, извлечение типов и оптимизация.
- График потока данных — каждое задание преобразуется в график потока данных.
- Диспетчер заданий — теперь руководитель заданий назначает задачу диспетчерам задач; сохраняет метаданные притока данных. Руководитель задания распространяет драйверы и следит за промежуточными результатами выполнения задания.
- Диспетчер задач — задачи выполняются в директоре задач, это рабочие удары.