Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634932)
Контекстум
Руконтекст антиплагиат система

Потоковая обработка данных с Apache Flink (6000,00 руб.)

0   0
Первый авторУэске Фабиан
АвторыКалаври Василики
ИздательствоМ.: ДМК Пресс
Страниц300
ID810618
АннотацияНачните работу с Apache Flink, фреймворком с открытым исходным кодом, на котором основаны многие крупнейшие в мире системы обработки потоковых данных. В данной книге вы изучите фундаментальные понятия параллельной потоковой обработки и узнаете, чем эта технология отличается от традиционной пакетной обработки данных. Ф. Уэске и В. Калаври, занятые в проекте Apache Flink с первых дней, покажут вам, как создавать масштабируемые потоковые приложения с помощью API Flink DataStream, а также непрерывно выполнять и поддерживать эти приложения в операционных средах. Потоковая обработка идеально подходит для многих задач: подготовки данных с малой задержкой, потоковой аналитики и информационных панелей в реальном времени, раннего оповещения и обнаружения мошенничества. Вы можете обрабатывать потоковые данные любого типа, включая взаимодействия с пользователем, финансовые транзакции и данные интернета вещей, немедленно после получения.
ISBN978-5-97060-880-7 (рус.)
УДК004.4
ББК32.972
Уэске, Ф. . Потоковая обработка данных с Apache Flink / В. . Калаври; Ф. . Уэске .— Пер. с англ. В. С. Яценкова .— Москва : ДМК Пресс, 2021 .— 300 с. : ил. — ISBN 978-1-491-97429-2 (англ.) .— ISBN 978-5-97060-880-7 (рус.) .— URL: https://rucont.ru/efd/810618 (дата обращения: 28.04.2024)

Предпросмотр (выдержки из произведения)

Потоковая_обработка_данных_с_Apache_Flink.pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Потоковая_обработка_данных_с_Apache_Flink.pdf
УДК 004.4 ББК 32.972 У99 У99 Потоковая обработка данных с Apache Flink / пер. с англ. В. С. Яценкова. – М.: ДМК Пресс, 2021. – 298 с.: ил. Уэске Ф., Калаври В. ISBN 978-5-97060-880-7 Начните работу с Apache Flink, фреймворком с открытым исходным кодом, на котором основаны многие крупнейшие в мире системы обработки потоковых данных. В данной книге вы изучите фундаментальные понятия параллельной потоковой обработки и узнаете, чем эта технология отличается от традиционной пакетной обработки данных. Ф. Уэске и В. Калаври, занятые в проекте Apache Flink с первых дней, покажут вам, как создавать масштабируемые потоковые приложения с помощью API Flink DataStream, а также непрерывно выполнять и поддерживать эти приложения в операционных средах. Потоковая обработка идеально подходит для многих задач: подготовки данных с малой задержкой, потоковой аналитики и информационных панелей в реальном времени, раннего оповещения и обнаружения мошенничества. Вы можете обрабатывать потоковые данные любого типа, включая взаимодействия с пользователем, финансовые транзакции и данные интернета вещей, немедленно после получения. УДК 004.4 ББК 32.972 Authorized Russian translation of the English edition of Stream Processing with Apache Flink ISBN 9781491974292. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Russian language edition copyright © 2021 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-491-97429-2 (англ.) ISBN 978-5-97060-880-7 (рус.) © Fabian Hueske, Vasiliki Kalavri, 2019 © Оформление, издание, перевод, ДМК Пресс, 2021
Стр.5
Содержание Предисловие ....................................................................................................11 От издательства ..............................................................................................13 Благодарности .................................................................................................14 Об авторах ........................................................................................................15 Колофон .............................................................................................................16 Глава 1. Введение в потоковую обработку с учетом состояния ...........................................................................................................17 1.1. Традиционные инфраструктуры данных .................................................18 1.1.1. Транзакционная обработка ................................................................18 1.1.2. Аналитическая обработка ..................................................................19 1.2. Обработка потоков с учетом состояния ...................................................21 1.2.1. Событийно-ориентированные приложения ....................................23 1.2.2. Конвейеры данных ..............................................................................24 1.2.3. Потоковая аналитика ..........................................................................25 1.3. Эволюция потоковой обработки с открытым исходным кодом .............26 1.3.1. Немного истории ................................................................................27 1.4. Обзорное знакомство с Flink .....................................................................29 1.4.1. Запуск вашего первого приложения Flink .........................................30 1.5. Заключение ................................................................................................33 Глава 2. Основы потоковой обработки ..................................................34 2.1. Введение в потоковое программирование ..............................................34 2.1.1. Графы потока данных .........................................................................34 2.1.2. Параллелизм данных и параллелизм задач ......................................36 2.1.3. Стратегии обмена данными ...............................................................36 2.2. Параллельная обработка потоков .............................................................37 2.2.1. Задержка и пропускная способность .................................................37 2.2.2. Операции с потоками данных ...........................................................40 2.3. Семантика времени ...................................................................................45 2.3.1. Что означает одна минута в потоковой обработке? .........................46 2.3.2. Время обработки .................................................................................47 2.3.3. Время события ....................................................................................47 2.3.4. Водяные знаки.....................................................................................49 2.3.5. Время обработки по сравнению со временем события ...................50 2.4. Модели состояния и согласованности ......................................................50
Стр.6
6  Содержание 2.4.1. Сбои заданий .......................................................................................52 2.4.2. Гарантии результата ...........................................................................53 2.5. Заключение ................................................................................................54 Глава 3. Архитектура Apache Flink ..........................................................56 3.1. Архитектура системы ................................................................................56 3.1.1. Компоненты набора Flink ...................................................................57 3.1.2. Развертывание приложений ..............................................................58 3.1.3. Выполнение задачи ............................................................................59 3.1.4. Высокодоступная конфигурация .......................................................60 3.2. Передача данных во Flink ..........................................................................62 3.2.1. Кредитное управление потоком ........................................................64 3.2.2. Цепочка задач .....................................................................................64 3.3. Обработка на основе времени события ...................................................66 3.3.1. Метки времени ....................................................................................66 3.3.2. Водяные знаки.....................................................................................67 3.3.3. Распространение водяного знака и время события .........................68 3.3.4. Назначение метки времени и создание водяных знаков ................70 3.4. Управление состоянием ............................................................................71 3.4.1. Состояние оператора ..........................................................................72 3.4.2. Состояние с ключевым доступом ......................................................73 3.4.3. Бэкенд состояния ................................................................................74 3.4.4. Масштабирование операторов с учетом состояния .........................75 3.5. Контрольные точки, точки сохранения и восстановление состояния ...77 3.5.1. Согласованные контрольные точки ...................................................77 3.5.2. Восстановление из сохраняющей контрольной точки .....................78 3.5.3. Алгоритм создания контрольной точки Flink ...................................80 3.5.4. Значение контрольных точек для производительности ..................85 3.5.5. Точки сохранения................................................................................85 3.6. Заключение ................................................................................................88 Глава 4. Настройка рабочей среды для Apache Flink ......................89 4.1. Необходимое ПО ........................................................................................89 4.2. Запуск и отладка приложений Flink в среде IDE ......................................90 4.2.1. Импорт примеров книги в IDE ...........................................................90 4.2.2. Запуск приложений Flink в среде IDE ................................................92 4.2.3. Отладка приложений Flink в среде IDE .............................................93 4.3. Развертывание проекта Flink для сборщика Maven ................................94 4.4. Заключение ................................................................................................95 Глава 5. API DataStream (v1.7) ...................................................................96 5.1. Hello, Flink! .................................................................................................96 5.1.1. Настройка среды выполнения ...........................................................98 5.1.2. Чтение входного потока .....................................................................98 5.1.3. Применение преобразований ............................................................99
Стр.7
Содержание  7 5.1.4. Вывод результата ................................................................................99 5.1.5. Выполнение .......................................................................................100 5.2. Преобразования .......................................................................................100 5.2.1. Основные преобразования ...............................................................101 5.2.2. Преобразования KeyedStream ..........................................................104 5.2.3. Многопоточные преобразования ....................................................106 5.2.4. Преобразования распределения ......................................................110 5.3. Настройка параллельной обработки ......................................................113 5.4. Типы ..........................................................................................................114 5.4.1. Поддерживаемые типы данных .......................................................115 5.4.2. Создание информации о типах для типов данных .........................117 5.4.3. Явное предоставление информации о типе ...................................118 5.5. Определение ключей и полей ссылок ....................................................119 5.5.1. Позиции поля ....................................................................................119 5.5.2. Выражения поля ................................................................................120 5.5.3. Ключевые селекторы ........................................................................121 5.6. Реализация функций ...............................................................................121 5.6.1. Функциональные классы ..................................................................122 5.6.2. Лямбда-функции ...............................................................................123 5.6.3. Расширенные функции.....................................................................123 5.7. Добавление внешних и Flink-зависимостей ..........................................124 5.8. Заключение ..............................................................................................125 Глава 6. Операторы на основе времени и оконные операторы .......................................................................................................126 6.1. Настройка показателей времени ............................................................126 6.1.1. Назначение меток времени и создание водяных знаков ..............128 6.1.2. Водяные знаки, задержка и полнота ...............................................132 6.2. Функции процесса ...................................................................................133 6.2.1. TimerService и таймеры ....................................................................134 6.2.2. Передача потоков на боковые выходы ............................................136 6.2.3. CoProcessFunction .............................................................................137 6.3. Оконные операторы ................................................................................139 6.3.1. Определение оконных операторов ..................................................139 6.3.2. Встроенные средства назначения окон ...........................................140 6.3.3. Применение функций в окнах .........................................................144 6.3.4. Настройка оконных операторов ......................................................150 6.4. Объединение потоков по времени .........................................................161 6.4.1. Интервальное объединение .............................................................161 6.4.2. Оконное объединение ......................................................................162 6.5. Обработка опоздавших данных ..............................................................164 6.5.1. Отбрасывание опоздавших событий ...............................................164 6.5.2. Перенаправление опоздавших событий .........................................164 6.5.3. Обновление результатов путем включения опоздавших событий .......................................................................................................166 6.6. Заключение ..............................................................................................167
Стр.8
8  Содержание Глава 7. Операторы и приложения с учетом состояния ................168 7.1. Реализация функций с сохранением состояния ....................................169 7.1.1. Объявление ключевого состояния в RuntimeContext .....................169 7.1.2. Реализация списочного состояния с помощью интерфейса ListCheckpointed .........................................................................................172 7.1.3. Использование широковещательного состояния ...........................175 7.1.4. Использование интерфейса CheckpointedFunction ........................178 7.1.5. Получение уведомлений о пройденных контрольных точках .......180 7.2. Включение восстановления после сбоя для приложений с учетом состояния ........................................................................................................181 7.3. Обеспечение работоспособности приложений с учетом состояния ....182 7.3.1. Указание уникальных идентификаторов оператора ......................182 7.3.2. Определение максимального параллелизма операторов ключевого состояния ..................................................................................183 7.4. Производительность и надежность приложений с учетом состояния ........................................................................................................184 7.4.1. Выбор бэкенда состояния .................................................................184 7.4.2. Выбор примитива состояния ............................................................185 7.4.3. Предотвращение утечки состояния .................................................186 7.5. Развитие приложений с учетом состояния ............................................189 7.5.1. Обновление приложения без изменения существующего состояния ....................................................................................................190 7.5.2. Удаление состояния из приложения ................................................190 7.5.3. Изменение состояния оператора .....................................................190 7.6. Запрашиваемое состояние ......................................................................192 7.6.1. Архитектура и обслуживание запросов состояния .........................192 7.6.2. Отображение состояния запроса......................................................194 7.6.3. Запрос состояния из внешних приложений ....................................195 7.7. Заключение ...............................................................................................197 Глава 8. Чтение и запись при работе с внешними системами ........................................................................................................198 8.1. Гарантии согласованности приложений ................................................198 8.1.1. Идемпотентные записи ....................................................................199 8.1.2. Транзакционные записи ..................................................................200 8.2. Соединители Apache Flink .......................................................................201 8.2.1. Соединитель источника Apache Kafka .............................................202 8.2.2. Соединитель приемника Apache Kafka ............................................205 8.2.3. Соединитель файлового источника .................................................209 8.2.4. Соединитель файлового приемника................................................211 8.2.5. Соединитель приемника Apache Cassandra ....................................213 8.3. Реализация пользовательской исходной функции ...............................216 8.3.1. Сбрасываемые функции источника ................................................218 8.3.2. Функции источника, метки времени и водяные знаки ..................219 8.4. Реализация пользовательской функции приемника ............................220
Стр.9
Содержание  9 8.4.1. Идемпотентные соединители приемника ......................................222 8.4.2. Соединители транзакционных приемников...................................223 8.5. Асинхронный доступ к внешним системам ...........................................230 8.6. Заключение ..............................................................................................233 Глава 9. Настройка Flink для потоковых приложений ..................234 9.1. Режимы развертывания ...........................................................................234 9.1.1. Автономный кластер ........................................................................234 9.1.2. Docker .................................................................................................236 9.1.3. Apache Hadoop YARN .........................................................................238 9.1.4. Kubernetes ..........................................................................................241 9.2. Режим высокой доступности ...................................................................245 9.2.1. Высокая доступность в автономном режиме ..................................246 9.2.2. Высокодоступная конфигурация YARN ...........................................247 9.2.3. Высокодоступная конфигурация Kubernetes ..................................248 9.3. Интеграция с компонентами Hadoop .....................................................249 9.4. Конфигурация файловой системы ..........................................................250 9.5. Конфигурация системы ...........................................................................252 9.5.1. Java и загрузка классов .....................................................................252 9.5.2. Процессор ..........................................................................................253 9.5.3. Основная память и сетевые буферы ................................................253 9.5.4. Дисковое хранилище ........................................................................255 9.5.5. Контрольные точки и бэкенды состояния .......................................256 9.5.6. Безопасность .....................................................................................256 9.6. Заключение ..............................................................................................257 Глава 10. Работа с Flink и потоковыми приложениями ...............258 10.1. Запуск и управление потоковыми приложениями .............................258 10.1.1. Точки сохранения ............................................................................259 10.1.2. Управление приложениями с помощью клиента командной строки ..........................................................................................................260 10.1.3. Управление приложениями с помощью REST API ........................265 10.1.4. Объединение и развертывание приложений в контейнерах .......270 10.2. Управление планированием задач .......................................................273 10.2.1. Управление цепочкой задач ...........................................................273 10.2.2. Определение групп совместного использования слотов .............274 10.3. Настройка контрольных точек и восстановления ...............................276 10.3.1. Настройка контрольных точек .......................................................276 10.3.2. Настройка бэкендов состояния ......................................................279 10.3.3. Настройка восстановления .............................................................281 10.4. Мониторинг кластеров и приложений Flink ........................................283 10.4.1. Веб-интерфейс Flink .......................................................................283 10.4.2. Система метрик ...............................................................................285 10.4.3. Мониторинг задержки ....................................................................290 10.5. Настройка журналирования ..................................................................291 10.6. Заключение .............................................................................................292
Стр.10
10  Содержание Глава 11. Что дальше? ................................................................................293 11.1. Остальная часть экосистемы Flink ........................................................293 11.1.1. API DataSet для пакетной обработки .............................................293 11.1.2. Table API и SQL для реляционного анализа ..................................294 11.1.3. FlinkCEP для обработки сложных событий и сопоставления с образцом ...................................................................................................294 11.1.4. Gelly для обработки графов ............................................................295 11.2. Присоединяйтесь к сообществу Flink ...................................................295 Предметный указатель ..............................................................................296
Стр.11

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ