Главная страница

Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly


Скачать 7.59 Mb.
НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
Дата21.06.2022
Размер7.59 Mb.
Формат файлаpdf
Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
ТипДокументы
#609074
страница23 из 39
1   ...   19   20   21   22   23   24   25   26   ...   39
182 Глава 7 • Создание конвейеров данных
Фреймворки ввода и обработки данных для других хранилищ
Хотя.мы.привыкли.считать.Kafka.центром.мироздания,.кое-кто.с.нами.не.согласен..
Часть.разработчиков.ставят.в.основу.своих.архитектур.данных.такие.системы,.как.
Hadoop.или.Elasticsearch..В.некоторых.системах.есть.собственные.утилиты.ввода.
и.обработки.данных.—.Flume.для.Hadoop.и.Logstash.или.Fluentd.для.Elasticsearch..
Мы.рекомендуем.использовать.API.Kafka.Connect.в.случаях,.когда.Kafka.является.
неотъемлемой.частью.архитектуры,.а.цель.состоит.в.соединении.большого.числа.
источников.и.приемников..Если.же.вы.создаете.систему,.ориентированную.на.
Hadoop.и.Elasticsearch,.а.Kafka.—.лишь.одно.из.многих.средств.ввода.данных.в.эту.
систему,.то.имеет.смысл.воспользоваться.Flume.или.Logstash.
ETL-утилиты на основе GUI
Множество.классических.систем.наподобие.Informatica,.а.также.их.альтернатив.
с.открытым.исходным.кодом,.например.Talend.и.Pentaho,.и.даже.более.новых.ва- риантов,.таких.как.Apache.NiFi.и.StreamSets,.поддерживают.использование.Apache.
Kafka.в.качестве.как.источника.данных,.так.и.целевой.системы..Задействовать.их.
имеет.смысл.лишь.для.того,.чтобы.не.переходить.на.что-то.новое:.если.вы.везде.
применяете,.например,.Pentaho,.то.зачем.добавлять.еще.одну.систему.интеграции.
данных.специально.для.Kafka?.Это.имеет.смысл.также,.если.вы.создаете.конвейе- ры.ETL.на.основе.GUI..Основной.недостаток.таких.систем.в.том,.что.они.обычно.
предназначены.для.запутанных.технологических.процессов.и.окажутся.несколько.
тяжеловесным.и.сложным.программным.решением.для.случая,.когда.нужно.всего.
лишь.передать.данные.в.Kafka.и.из.нее..Как.упоминалось.в.разделе.«Преобразо- вания».ранее.в.этой.главе,.мы.убеждены,.что.основной.целью.интеграции.данных.
должна.быть.добросовестная.передача.сообщений.при.любых.условиях,.в.то.время.
как.большинство.ETL-утилит.лишь.привносят.ненужную.сложность.
Мы.рекомендуем.рассматривать.Kafka.в.качестве.платформы,.способной.как.на.
интеграцию.данных.(с.помощью.Connect).и.приложений.(с.использованием.произ- водителей.и.потребителей),.так.и.на.потоковую.обработку..Kafka.может.послужить.
прекрасной.заменой.для.ETL-утилиты,.которая.занимается.только.интеграцией.
хранилищ.данных.
Фреймворки потоковой обработки
Практически.все.фреймворки.потоковой.обработки.могут.читать.данные.из.Kafka.
и.записывать.их.в.некоторые.другие.системы..Если.ваша.целевая.система.под- держивается.и.вы.все.равно.собираетесь.использовать.конкретный.фреймворк.
потоковой.обработки.для.обработки.поступающих.из.Kafka.событий,.имеет.смысл.
задействовать.его.же.для.интеграции.данных..Это.часто.позволяет.исключить.из.
технологического.процесса.потоковой.обработки.необходимость.хранить.обрабо-

Резюме 183
танные.события.в.Kafka.—.можно.просто.читать.их.и.записывать.в.другую.систему..
Правда,.у.этого.решения.есть.и.недостаток.в.виде.усложнения.отладки.в.случае,.
например,.потери.и.повреждения.сообщений.
Резюме
В.этой.главе.разговор.шел.о.применении.Kafka.для.интеграции.данных..Начав.с.ос- нований.для.использования.Kafka.при.реализации.данной.задачи,.мы.рассмотрели.
несколько.общих.вопросов,.относящихся.к.решениям.для.интеграции.данных..
Мы.продемонстрировали,.почему,.с.нашей.точки.зрения,.Kafka.и.ее.API.Connect.
хорошо.для.этого.подходят..Привели.несколько.примеров.работы.Kafka.Connect.
в.различных.сценариях,.посмотрели,.как.Connect.работает,.после.чего.обсудили.
несколько.его.альтернатив.
На.каком.бы.программном.решении.для.интеграции.данных.вы.ни.остановились.
в.итоге,.важнейшим.его.свойством.будет.способность.доставить.все.сообщения.
при.любых.сбойных.ситуациях..Мы.убеждены,.что.Kafka.Connect.исключительно.
надежен,.поскольку.основан.на.проверенных.временем.характеристиках.надеж- ности.самой.Kafka,.но.важно,.чтобы.вы.всегда.тестировали.выбранную.систему,.
как.это.делаем.мы..Убедитесь,.что.ваша.система.интеграции.данных.способна.без.
потерь.сообщений.выдержать.остановку.процессов,.аварийные.сбои.машин,.сете- вые.задержки.и.высокие.нагрузки..В.конце.концов,.единственная.задача.систем.
интеграции.данных.—.доставить.сообщения.
Важнейшим.требованием.при.интеграции.информационных.систем.обычно.явля- ется.надежность,.однако.это.лишь.одно.из.требований..При.выборе.информацион- ной.системы.важно.сначала.просмотреть.свои.требования.(см..примеры.в.разделе.
«Соображения.по.поводу.создания.конвейеров.данных».ранее.в.этой.главе),.после.
чего.убедиться,.что.система.им.удовлетворяет..Но.этого.недостаточно.—.вы.должны.
хорошо.разобраться.в.выбранном.программном.решении.для.интеграции.данных,.
чтобы.быть.уверенным.в.том,.что.при.его.использовании.ваши.требования.будут.
удовлетворяться..Того,.что.Kafka.поддерживает.строго.однократную.доставку,.
недостаточно.—.вы.должны.убедиться,.что.случайно.не.настроили.ее.так,.что.она.
окажется.надежной.лишь.частично.

8
Зеркальное копирование между кластерами
В.большей.части.данной.книги.мы.обсуждаем.настройку,.поддержку.и.использова- ние.одного.кластера.Kafka..Однако.существует.несколько.сценариев,.при.которых.
архитектура.должна.состоять.из.нескольких.кластеров.
В.некоторых.случаях.кластеры.совершенно.независимы.—.действуют.в.различных.
подразделениях.организации.или.в.различных.сценариях..Иногда.вследствие.раз- личий.в.соглашениях.об.уровне.предоставления.услуг.(SLA).или.нагрузках.бывает.
сложно.приспособить.один.кластер.для.обслуживания.нескольких.сценариев.
использования..В.других.случаях.различаются.требования.к.информационной.
безопасности..Эти.ситуации.не.представляют.проблем.—.управлять.несколькими.
отдельными.кластерами,.по.сути,.все.равно.что.управлять.несколькими.экземпля- рами.одного.и.того.же.кластера.
В.других.сценариях.различные.кластеры.взаимосвязаны,.и.администраторам.
приходится.непрерывно.копировать.данные.между.ними..В.большинстве.баз.дан- ных.непрерывное.копирование.данных.между.серверами.баз.данных.называется.
репликацией..Но.поскольку.мы.используем.термин.«репликация».для.описания.
перемещения.данных.между.узлами.Kafka.в.пределах.одного.кластера,.то.для.ко- пирования.данных.между.разными.кластерами.Kafka.будем.употреблять.термин.
зеркальное копирование.(mirroring)..Встроенный.в.Apache.Kafka.репликатор.данных.
между.кластерами.называется.MirrorMaker.
В.этой.главе.мы.обсудим.зеркальное.копирование.части.или.всех.данных.между.
кластерами..Начнем.с.обсуждения.некоторых.распределенных.сценариев.зеркаль- ного.копирования.данных.между.кластерами..Затем.продемонстрируем.несколько.
применяемых.для.реализации.этих.сценариев.архитектур.и.обсудим.плюсы.и.ми- нусы.каждой.из.них..После.этого.перейдем.к.разговору.о.самом.MirrorMaker.и.его.
использовании..Мы.дадим.вам.несколько.советов.по.его.эксплуатации,.включая.

Сценарии зеркального копирования данных между кластерами 185
развертывание.и.настройку.производительности..В.завершение.обсудим.несколько.
альтернатив.MirrorMaker.
Сценарии зеркального копирования данных между кластерами
Вот.несколько.ситуаций,.в.которых.может.оказаться.полезно.зеркальное.копиро- вание.данных.между.кластерами.
‰
‰
Региональные и центральные кластеры..В.некоторых.случаях.один.или.несколько.
ЦОД.компании.находятся.в.различных.географических.регионах,.городах.или.
даже.на.разных.континентах..В.каждом.ЦОД.есть.свой.кластер.Kafka..Части.при- ложений.для.работы.достаточно.взаимодействия.лишь.с.локальным.кластером,.
а.части.требуются.данные.из.нескольких.ЦОД.(в.противном.случае.нам.не.нуж- ны.были.бы.программные.решения.для.репликации.данных.между.ЦОД)..Такое.
требование.выдвигается.при.множестве.сценариев.использования,.но.классиче- ский.пример.—.компания,.меняющая.цены.товаров.в.зависимости.от.их.запасов.
и.спроса..У.такой.компании.может.быть.ЦОД.во.всех.городах,.где.она.работает,.
в.которые.стекается.информация.о.запасах.товаров.на.местных.складах.и.спросе.
на.них.с.соответствующей.корректировкой.цен..Всю.эту.информацию.необхо- димо.зеркально.копировать.на.центральный.кластер,.чтобы.бизнес-аналитики.
могли.сформировать.отчеты.о.прибыли.в.масштабе.всей.компании.
‰
‰
Избыточность (переключение при аварийных сбоях)..Приложения.выполняются.
на.одном.кластере.Kafka,.для.них.не.требуются.данные.из.других.мест,.но.вас.
беспокоит.вероятность.недоступности.кластера.по.каким-либо.причинам..Вам.
нужен.еще.один.кластер.Kafka.со.всеми.данными.с.первого.кластера,.чтобы.
в.случае.аварии.можно.было.перенаправить.приложения.на.второй.кластер.
и.продолжать.работу.как.ни.в.чем.не.бывало.
‰
‰
Миграция в облако..Сейчас.многие.компании.пользуются.как.локальным.ЦОД,.
так.и.услугами.облачных.провайдеров..Часто.ради.избыточности.приложения.
выполняются.в.различных.регионах.провайдеров.облачных.услуг,.а.иногда.
используются.и.различные.провайдеры..В.подобных.случаях.нередко.задей- ствуется.как.минимум.по.одному.кластеру.Kafka.в.каждом.локальном.ЦОД.
и.каждом.регионе.облака..Эти.кластеры.Kafka.задействуются.приложениями.из.
каждого.ЦОД.и.региона.для.эффективной.передачи.данных.между.ЦОД..Напри- мер,.если.развернутое.в.облаке.новое.приложение.требует.каких-либо.данных,.
хранимых.в.локальной.базе.данных.и.обновляемых.работающими.в.локальном.
ЦОД.приложениями,.то.можно.воспользоваться.Kafka.Connect.для.сбора.изме- нений.в.базе.данных.в.локальном.кластере.Kafka.с.последующим.их.зеркальным.
копированием.в.облачный.кластер.Kafka,.где.их.сможет.использовать.новое.
приложение..Это.помогает.контролировать.затраты.на.трафик.между.ЦОД,.
а.также.повысить.его.безопасность.

186 Глава 8 • Зеркальное копирование между кластерами
Мультикластерные архитектуры
Теперь,.когда.мы.взглянули.на.несколько.сценариев.использования,.для.которых.
требуется.больше.одного.кластера.Kafka,.пришло.время.описать.несколько.распро- страненных.архитектурных.паттернов,.которые.мы.успешно.применяли.при.реали- зации.этих.сценариев..Прежде.чем.заняться.данными.архитектурами,.рассмотрим.
вкратце.реалии.взаимодействия.между.различными.ЦОД..Если.не.понимать,.что.
предлагаемые.программные.решения.—.компромиссы,.учитывающие.конкретные.
условия.работы.сети,.может.показаться,.что.они.переусложнены.
Реалии взаимодействия между различными ЦОД
При.обсуждении.взаимодействия.между.различными.ЦОД.имеет.смысл.учитывать.
следующие.вещи:
‰
‰
высокую длительность задержек..Задержки.при.взаимодействии.между.двумя.
кластерами.Kafka.возрастают.пропорционально.расстоянию.и.числу.транзит- ных.участков.сети.между.ними;
‰
‰
ограниченную пропускную способность сети..Пропускная.способность.глобаль- ных.сетей.(Wide.Area.networks.(WAN)).обычно.значительно.ниже.пропускной.
способности.сети.в.пределах.одного.ЦОД,.причем.еще.и.меняется.ежеминутно..
Кроме.того,.более.высокая.длительность.задержек.усложняет.использование.
всей.доступной.полосы.пропускания;
‰
‰
повышенные по сравнению с работой в пределах одного ЦОД затраты..Вне.за- висимости.от.того,.где.работает.Kafka,.локально.или.в.облаке,.взаимодействие.
между.кластерами.означает.повышенные.затраты..Это.происходит.отчасти.из-за.
ограниченности.пропускной.способности.сети.и.слишком.высокой.стоимости.
ее.повышения,.а.также.из-за.запрашиваемой.провайдерами.стоимости.передачи.
данных.между.различными.ЦОД,.регионами.и.облаками.
Брокеры.и.клиенты.Apache.Kafka.проектируются,.разрабатываются,.тестируются.
и.настраиваются.в.условиях.одного.ЦОД..Причем.в.расчете.на.низкую.задержку.
и.широкую.полосу.пропускания.между.брокерами.и.клиентами..Это.очевидно.из.
значений.времени.ожидания.по.умолчанию.и.размеров.различных.буферов..Поэто- му.не.рекомендуется.(за.исключением.особых.случаев,.которые.мы.обсудим.позже).
устанавливать.часть.брокеров.Kafka.в.одном.ЦОД,.а.часть.—.в.другом.
В.большинстве.случаев.стоит.избегать.генерации.данных.для.удаленного.ЦОД,.
но.если.вам.все.же.приходится.это.делать,.рассчитывайте.на.более.длительные.
задержки.и,.возможно,.большее.число.сетевых.ошибок..С.ошибками.можно.спра- виться.с.помощью.увеличения.числа.попыток.повтора.производителей,.а.с.дли- тельными.задержками.—.за.счет.увеличения.размеров.буферов.для.хранения.за- писей.между.попытками.отправки.

Мультикластерные архитектуры 187
Если.нам.требуется.репликация.между.кластерами.и.мы.исключили.возможность.
взаимодействия.между.брокерами,.а.также.взаимодействия.производителей.с.бро- керами,.то.остается.только.взаимодействие.брокеров.с.потребителями..Безусловно,.
это.наиболее.безопасный.вид.межкластерного.взаимодействия,.поскольку.в.случае.
невозможности.чтения.данных.потребителем.из-за.нарушения.связности.сети.за- писи.будут.в.безопасности.в.брокерах.Kafka.до.тех.пор,.пока.связь.не.восстановится.
и.потребители.не.смогут.их.прочитать..Риск.случайной.потери.данных.вследствие.
нарушения.связности.сети.отсутствует..Тем.не.менее.если.в.одном.ЦОД.есть.не- сколько.приложений,.которым.требуется.читать.данные.из.брокеров.Kafka.в.дру- гом.ЦОД,.то.из-за.ограниченности.полосы.пропускания.лучше.установить.кластер.
Kafka.в.каждом.из.ЦОД.и.выполнить.зеркальное.копирование.данных.между.ними,.
вместо.того.чтобы.допустить,.чтобы.несколько.приложений.потребляли.одни.
и.те.же.данные.через.глобальную.сеть.
Мы.еще.поговорим.подробнее.о.тонкой.настройке.Kafka.для.взаимодействия.
между.ЦОД,.но.следующие.принципы.будут.руководящими.для.всех.дальнейших.
архитектур.
‰
‰
Не.менее.одного.кластера.на.ЦОД.
‰
‰
Каждое.событие.реплицируется.ровно.один.раз.(повторы.в.случае.ошибок.за- прещены).между.каждой.парой.ЦОД.
‰
‰
По.возможности.предпочитаем.потребление.данных.из.удаленного.ЦОД.от- правке.данных.в.него.
Архитектура с топологией типа «звезда»
Эта.архитектура.предназначена.для.ситуации.с.несколькими.локальными.и.одним.
центральным.кластером.Kafka.(рис..8.1).
Существует.также.упрощенный.вариант.этой.архитектуры.с.двумя.кластерами.—.
ведущим.и.ведомым.(рис..8.2).
Эта.архитектура.применяется,.когда.данные.генерируются.в.нескольких.ЦОД,.
причем.части.потребителей.необходим.доступ.ко.всему.набору.данных..Она.также.
дает.возможность.приложениям.в.каждом.ЦОД.обрабатывать.только.локальные.по.
отношению.к.нему.данные..Но.при.этом.не.обеспечивается.доступ.ко.всему.набору.
данных.из.всех.ЦОД.
Основное.достоинство.этой.архитектуры.заключается.в.том,.что.данные.всегда.
генерируются.для.локального.ЦОД,.а.события.из.каждого.ЦОД.реплицируются.
однократно.—.в.центральный.ЦОД..Приложения,.обрабатывающие.данные.из.
одного.ЦОД,.можно.разместить.в.нем.же..Приложения,.которым.необходимо.об- рабатывать.данные.из.нескольких.ЦОД,.размещаются.в.центральном.ЦОД,.куда.
зеркально.копируются.все.события..А.поскольку.репликация.всегда.происходит.
в.одну.сторону,.а.каждый.потребитель.всегда.читает.данные.из.одного.кластера,.то.
такую.архитектуру.легко.развертывать,.настраивать.и.контролировать.

188 Глава 8 • Зеркальное копирование между кластерами
Рис. 8.1.
Архитектура с топологией типа «звезда»

Мультикластерные архитектуры 189
Рис. 8.2. Упрощенная версия архитектуры с топологией типа «звезда»
Основные.недостатки.этой.архитектуры.вытекают.из.ее.достоинств.и.простоты..
Процессоры.одного.регионального.ЦОД.не.могут.обращаться.к.данным.другого..
Чтобы.лучше.разобраться,.почему.это.обстоятельство.ограничивает.наши.возмож- ности,.рассмотрим.пример.данной.архитектуры.
Допустим,.у.большого.банка.есть.филиалы.в.нескольких.городах.и.было.решено.
хранить.профили.пользователей.и.историю.их.счетов.в.кластерах.Kafka.в.каждом.
из.городов..Вся.информация.реплицируется.в.центральный.кластер,.использу- емый.для.целей.бизнес-аналитики..При.входе.пользователей.на.сайт.банка.или.
посещении.ими.местного.филиала.события.отправляются.в.локальный.кластер.
и.читаются.тоже.оттуда..Однако.представьте.себе,.что.пользователь.посетил.фи- лиал.банка.в.другом.городе..Информации.о.нем.в.этом.городе.нет,.так.что.филиалу.
придется.связаться.с.удаленным.кластером.(не.рекомендуется),.иначе.никакой.
возможности.получить.информацию.о.пользователе.у.него.не.будет.(весьма.не- приятная.ситуация)..Поэтому.применяться.данный.паттерн.может.только.для.тех.
частей.набора.данных,.которые.можно.полностью.разделить.между.региональны- ми.ЦОД.
При.реализации.такой.архитектуры.необходим.как.минимум.один.процесс.зер- кального.копирования.в.центральном.ЦОД.для.каждого.регионального..Этот.
процесс.будет.потреблять.данные.из.всех.удаленных.региональных.кластеров.
и.отправлять.их.в.центральный.кластер..Если.в.нескольких.ЦОД.существует.одна.
и.та.же.тема,.можно.записать.все.события.из.нее.в.одну.тему.с.тем.же.названием.
на.центральном.кластере.или.заносить.события.из.каждого.ЦОД.в.отдельную.
тему.
Архитектура типа «активный — активный»
Эта.архитектура.реализуется,.когда.два.или.более.ЦОД.совместно.используют.
часть.данных.или.их.все,.причем.каждый.из.них.может.как.генерировать,.так.и.по- треблять.события.(рис..8.3).

190 Глава 8 • Зеркальное копирование между кластерами
Рис. 8.3. Модель архитектуры типа «активный — активный»
Основное.преимущество.архитектуры.—.возможность.обслуживания.пользова- телей.ближайшим.ЦОД,.что.обычно.повышает.производительность,.причем.без.
потерь.функциональности.из-за.ограниченной.доступности.данных,.что.мы.наблю- дали.в.архитектуре.с.топологией.типа.«звезда»..Преимуществами.являются.также.
его.избыточность.и.отказоустойчивость..Поскольку.каждый.из.ЦОД.обладает.всей.
полнотой.функциональности,.в.случае.недоступности.одного.из.них.можно.пере- направить.пользователей.на.оставшийся..Для.такого.восстановления.после.сбоев.
нужно.лишь.сетевое.перенаправление.пользователей,.обычно.это.самый.простой.
и.прозрачный.тип.восстановления.
Основной.недостаток.подобной.архитектуры.заключается.в.том,.что.весьма.не- просто.избежать.конфликтов.в.случае.асинхронного.чтения.и.обновления.данных.
в.нескольких.местах..Существуют.также.технические.сложности.зеркального.
копирования.событий..Например,.как.гарантировать,.что.одно.и.то.же.событие.
не.будет.бесконечно.зеркально.копироваться.туда.и.обратно?.Но.еще.более.значи- мы.сложности.в.поддержании.согласованности.данных.между.этими.двумя.ЦОД..
Вот.несколько.примеров.трудностей,.с.которыми.вам.придется.столкнуться.
‰
‰
При.отправке.пользователем.события.в.один.ЦОД.и.чтении.событий.из.друго- го.существует.вероятность.того,.что.записанное.им.событие.еще.не.попало.во.
второй.ЦОД..С.точки.зрения.пользователя.это.будет.выглядеть.так,.будто.он.
добавил.книгу.в.список.желаемых,.заглянул.в.него,.а.книги.там.нет..Поэтому.
при.использовании.такой.архитектуры.разработчики.обычно.стараются.при- вязывать.пользователей.к.конкретному.ЦОД.и.гарантировать,.что.они.всегда.
задействуют.один.кластер,.кроме.случаев.их.подключения.из.удаленной.точки.
или.недоступности.ЦОД.
‰
‰
Событие.из.одного.ЦОД.гласит,.что.пользователь.заказал.книгу.A,.а.относяще- еся.примерно.к.тому.же.моменту.времени.событие.из.другого.ЦОД.—.что.он.же.
заказал.книгу.Б..После.зеркального.копирования.оба.события.окажутся.в.обоих.

Мультикластерные архитектуры
1   ...   19   20   21   22   23   24   25   26   ...   39


написать администратору сайта