Главная страница
Навигация по странице:

  • Авторизация административных операций

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


    Скачать 7.59 Mb.
    НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
    Дата21.06.2022
    Размер7.59 Mb.
    Формат файлаpdf
    Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
    ТипДокументы
    #609074
    страница26 из 39
    1   ...   22   23   24   25   26   27   28   29   ...   39
    207
    тра.
    num.streams
    .чуть.меньше.него..В.случае.потребления.или.генерации.сжатых.
    событий.(что.рекомендуется,.поскольку.ширина.полосы.пропускания.—.наиболее.
    узкое.место.зеркального.копирования.между.ЦОД).MirrorMaker.придется.рас- паковывать.и.снова.упаковывать.события..При.этом.активно.используются.ре- сурсы.CPU,.так.что.следите.за.применением.CPU.при.увеличении.числа.потоков.
    выполнения..Таким.образом.вы.сможете.определить.максимальную.пропускную.
    способность,.достижимую.с.помощью.одного.экземпляра.MirrorMaker..Если.ее.
    недостаточно,.попробуйте.добавить.дополнительные.экземпляры,.а.затем.и.до- полнительные.серверы.
    Кроме.того,.полезно.будет.выделить.важные.темы.—.те,.для.которых.обязательно.
    низкое.значение.задержки,.так.что.кластер-зеркало.должен.находиться.как.можно.
    ближе.к.исходному.кластеру.—.в.отдельном.кластере.MirrorMaker.со.своей.группой.
    потребителей..Это.позволит.предотвратить.замедление.работы.самого.важного.из.
    ваших.конвейеров.из-за.слишком.раздутой.темы.или.вышедшего.из-под.контроля.
    производителя.
    По.большому.счету.это.все,.что.можно.настроить.в.самой.MirrorMaker..Однако.
    у.вас.есть.еще.возможности.повысить.производительность.потоков.потребителей.
    и.экземпляров.MirrorMaker.
    Для.оптимизации.настроек.сети.в.операционной.системе.Linux.можно.сделать.
    следующее:
    ‰
    ‰
    увеличить.размер.буфера.TCP.(
    net.core.rmem_default
    ,.
    net.core.rmem_max
    ,.
    net.core.wmem_default
    ,.
    net.core.wmem_max
    ,.
    net.core.optmem_max
    );
    ‰
    ‰
    включить.автоматическое.масштабирование.TCP.окна.(выполнить.команду.
    sysctl –w net.ipv4.tcp_window_scaling=1
    .или.добавить.
    net.ipv4.tcp_window_
    scaling=1
    .в.файл.
    /etc/sysctl.conf
    );
    ‰
    ‰
    уменьшить.интервал.времени.в.алгоритме.медленного.старта.TCP.(установить.
    значение.
    /proc/sys/net/ipv4/tcp_slow_start_after_idle
    .в.0).
    Обратите.внимание.на.то,.что.тонкая.настройка.сети.Linux.—.объемная.и.сложная.
    тема..Чтобы.лучше.разобраться.в.перечисленных.и.иных.параметрах,.почитайте.
    руководство.по.тонкой.настройке.сети,.например,.Performance Tuning for Linux
    Servers.Сандры.К..Джонсон.(Sandra.K..Johnson).и.др..(издательство.IBM.Press).
    Кроме.того,.вам.может.понадобиться.настроить.работающие.в.MirrorMaker.про- изводители.и.потребители..Во-первых,.нужно.разобраться,.производитель.или.
    потребитель.представляет.собой.узкое.место.—.производитель.ожидает,.пока.по- требитель.прочитает.данные,.или.наоборот?.Один.из.способов.выяснения.этого.—.
    анализ.параметров.производителя.и.потребителя..Если.один.процесс.простаивает,.
    а.другой.используется.на.все.100.%,.то.сразу.становится.понятно,.какой.из.них.
    нуждается.в.настройке..Еще.один.способ.—.выполнить.несколько.дампов.потоков.
    выполнения.с.помощью.утилиты.jstack.и.посмотреть,.на.что.потоки.MirrorMaker.
    тратят.большую.часть.времени.—.на.опросы.или.отправку..То,.что.бо'льшая.часть.

    208 Глава 8 • Зеркальное копирование между кластерами времени.затрачивается.на.опросы,.обычно.означает,.что.узкое.место.—.в.потреби- теле,.а.если.на.отправку,.то.в.производителе.
    При.тонкой.настройке.производителя.могут.оказаться.полезными.следующие.
    параметры.конфигурации:
    ‰
    ‰ max.in.flight.requests.per.connection
    ..По.умолчанию.MirrorMaker.допускает.
    наличие.только.одного.активного.запроса..Это.значит,.что.прежде.чем.можно.
    будет.отправить.следующее.сообщение,.целевой.кластер.должен.подтвердить.
    получение.каждого.отправленного.производителем.запроса..Это.может.огра- ничить.пропускную.способность,.особенно.если.брокеры.подтверждают.полу- чение.со.значительной.задержкой..MirrorMaker.ограничивает.число.активных.
    запросов,.потому.что.это.единственный.способ.гарантировать.сохранение.
    Kafka.порядка.сообщений.в.том.случае,.если.отправку.некоторых.из.них.при- дется.повторить.несколько.раз,.прежде.чем.их.успешное.получение.будет.под- тверждено..Если.для.сценария.использования.не.важен.порядок.сообщений,.то.
    можно.повысить.значение.параметра.
    max.in.flight.requests.per.connection и.значительно.увеличить.пропускную.способность;
    ‰
    ‰ linger.ms
    .и.
    batch.size
    ..Если.мониторинг.показывает,.что.производитель.все.
    время.отправляет.полупустые.пакеты.(то.есть.значения.
    batch-size-avg
    .и.
    batch- size-max
    .меньше,.чем.заданное.в.настройках.значение.
    batch.size
    ),.можно.
    увеличить.пропускную.способность.путем.создания.небольшой.искусственной.
    задержки..Увеличьте.значение.параметра.
    linger.ms
    ,.и.производитель.будет.
    несколько.миллисекунд.ожидать.наполнения.пакета,.прежде.чем.отправить.
    его..Если.же.вы.отправляете.полные.пакеты.и.у.вас.есть.свободная.память,.то.
    можете.увеличить.значение.параметра.
    batch.size
    ,.чтобы.отправлять.пакеты.
    большего.размера.
    Следующие.параметры.конфигурации.потребителя.могут.помочь.увеличить.его.
    пропускную.способность.
    ‰
    ‰
    Стратегия.распределения.разделов.по.потребителям.в.MirrorMaker.(то.есть.
    алгоритм.выбора.того,.какому.потребителю.какие.разделы.назначаются).со.
    значением.по.умолчанию.
    range
    ..В.стратегии.
    range
    .есть.свои.преимущества,.
    именно.поэтому.она.используется.по.умолчанию,.но.она.же.может.обусловить.
    неравномерное.распределение.разделов.по.потребителям..Применительно.
    к.MirrorMaker.обычно.лучше.изменить.стратегию.на.циклическую,.особен- но.в.случае.зеркального.копирования.большого.количества.тем.и.разделов..
    Для.этого.в.файл.конфигурации.потребителя.необходимо.добавить.параметр.
    partition.assignment.strategy=org.apache.kafka.clients.consumer.Round-
    RobinAssignor
    ‰
    ‰ fetch.max.bytes
    .—.если.собираемые.показатели.демонстрируют,.что.значения.
    fetch-size-avg
    .и.
    fetch-size-max
    .близки.к.значению.параметра.
    fetch.max.bytes
    ,.
    то.потребитель.читает.с.брокера.столько.данных,.сколько.ему.разрешается..
    Если.у.вас.есть.резервы.памяти,.можете.попробовать.увеличить.значение.па-

    Другие программные решения для зеркального копирования между кластерами 209
    раметра.
    fetch.max.bytes
    ,.позволив.тем.самым.потребителю.читать.больший.
    объем.данных.при.каждом.запросе.
    ‰
    ‰ fetch.min.bytes
    .и.
    fetch.max.wait
    .—.если.анализ.показателей.потребителя.
    свидетельствует,.что.значение.
    fetch-rate
    .слишком.высокое,.то.потребитель.
    отправляет.брокерам.слишком.много.запросов,.не.получая.в.ответ.в.каждом.
    запросе.достаточного.количества.данных..Попробуйте.увеличить.значения.обо- их.параметров,.
    fetch.min.bytes
    .и.
    fetch.max.wait
    ,.чтобы.потребитель.получал.
    в.каждом.запросе.больше.данных,.а.брокер,.перед.отправкой.ему.данных,.ждал,.
    пока.не.появится.достаточное.их.количество.
    Другие программные решения для зеркального копирования между кластерами
    Мы.так.подробно.изучили.MirrorMaker.потому,.что.это.программное.обеспечение.
    для.зеркального.копирования.входит.в.состав.Apache.Kafka..Однако.у.MirrorMaker.
    есть.определенные.ограничения..Имеет.смысл.обратить.внимание.на.некоторые.
    альтернативы.MirrorMaker.и.на.то,.как.они.обходят.его.ограничения.и.проблемы.
    uReplicator компании Uber
    Компания.Uber.использовала.MirrorMaker.очень.широко.и.по.мере.роста.числа.
    тем.и.разделов.и.повышения.производительности.кластера.столкнулась.со.следу- ющими.проблемами.
    ‰
    ‰
    Задержки из-за перераспределения..MirrorMaker.применяют.обычные.потре- бители..Добавление.потоков.и.экземпляров.MirrorMaker,.перезапуск.экзем- пляров.MirrorMaker.или.даже.просто.добавление.новых.тем,.соответствующих.
    регулярному.выражению.из.параметра.
    whitelist
    ,.—.все.это.приводит.к.пере- распределению.потребителей..Как.мы.видели.в.главе.4,.это.вызывает.останов.
    всех.потребителей.до.тех.пор,.пока.всем.им.не.будут.назначены.новые.разделы..
    При.очень.большом.числе.тем.и.разделов.этот.процесс.может.занять.немало.
    времени,.особенно.при.использовании.потребителей.старой.версии,.как.было.
    в.Uber..В.некоторых.случаях.это.приводило.к.простою.в.течение.5–10.минут,.
    отставанию.зеркального.копирования.и.накоплению.огромного.объема.событий,.
    требующих.зеркального.копирования..Восстановление.после.подобной.ситуа- ции.могло.быть.длительным..В.результате.возникала.очень.большая.задержка.
    чтения.событий.потребителями.из.целевого.кластера.
    ‰
    ‰
    Сложности при добавлении тем..Использование.регулярного.выражения.
    в.качестве.
    whitelist
    .темы.означает,.что.MirrorMaker.придется.выполнять.
    перераспределение.при.каждом.добавлении.соответствующей.темы.в.исход- ный.кластер..Ранее.мы.уже.видели,.что.в.Uber.перераспределение.приводило.
    к.особенно.неприятным.последствиям..Чтобы.избежать.подобных.внезапных.

    210 Глава 8 • Зеркальное копирование между кластерами перераспределений,.в.компании.решили.просто.перечислять.все.темы,.кото- рые.нужно.зеркально.копировать..Но.это.значит,.что.приходилось.вручную.
    добавлять.все.подлежащие.копированию.новые.темы.в.
    whitelist
    .на.всех.эк- земплярах.MirrorMaker.и.перезапускать.эти.экземпляры,.что.все.равно.приво- дило.к.перераспределению..Конечно,.оно.происходило.при.запланированном.
    техобслуживании,.а.не.всякий.раз,.когда.кто-нибудь.добавлял.тему,.но.объем.
    трудозатрат.все.равно.был.большим..Это.также.означало,.что.в.случае.ошибки.
    при.техобслуживании,.вследствие.которой.у.разных.экземпляров.окажутся.
    разные.списки.тем,.MirrorMaker.после.запуска.станет.бесконечно.производить.
    перераспределение,.поскольку.потребители.не.смогут.договориться,.на.какую.
    тему.кому.подписываться.
    Из-за.этих.проблем.Uber.пришлось.написать.собственный.клон.утилиты.Mir- rorMaker,.получивший.название.uReplicator..В.компании.решили.воспользовать- ся.Apache.Helix.в.качестве.центрального.высокодоступного.контроллера,.кото- рый.отвечал.бы.за.список.тем.и.разделов,.назначаемых.различным.экземплярам.
    uReplicator..В.нем.для.добавления.новых.тем.в.список.в.Helix.администраторы.при- меняют.API.REST,.а.uReplicator.отвечает.за.назначение.разделов.различным.по- требителям..Чтобы.добиться.этого,.в.Uber.заменили.используемых.в.MirrorMaker.
    потребителей.Kafka.на.потребителя.Kafka,.который.они.написали.сами.и.назвали.
    потребителем.Helix..Разделы.назначаются.этому.потребителю.контроллером.Helix,.
    а.не.в.результате.соглашения.между.потребителями.(подробности.того,.как.это.
    происходит.в.Kafka,.вы.можете.найти.в.главе.4)..В.результате.потребитель.Helix.
    избегает.перераспределений,.прослушивая.на.предмет.поступающих.от.Helix.из- менений.в.назначениях.разделов.
    В.блоге.Uber.написали.сообщение,.где.описали.архитектуру.более.подробно.и.по- казали,.каких.положительных.результатов.достигли..На.момент.написания.данной.
    книги.нам.неизвестно.о.каких-либо.компаниях,.кроме.Uber,.которые.использо- вали.бы.uReplicator..Вероятно,.это.следствие.того,.что.большинство.компаний.
    не.работают.в.таких.масштабах,.как.Uber,.и.не.сталкиваются.с.подобными.пробле- мами,.или.того,.что.зависимость.от.Apache.Helix.означает.необходимость.изучения.
    совершенно.нового.компонента.и.работы.с.ним,.что.усложняет.проект.в.целом.
    Replicator компании Confluent
    Параллельно.с.разработкой.uReplicator.компанией.Uber.в.компании.Confluent.неза- висимо.создали.свой.Replicator..Несмотря.на.схожесть.названий,.проекты.не.имеют.
    практически.ничего.общего.—.это.два.различных.решения.двух.различных.наборов.
    проблем.MirrorMaker..Replicator.компании.Confluent.был.разработан.для.решения.
    проблем,.с.которыми.сталкиваются.корпоративные.заказчики,.когда.используют.
    MirrorMaker.при.развертывании.своих.мультикластерных.архитектур.
    ‰
    ‰
    Расхождения конфигураций кластеров..MirrorMaker.обеспечивает.согласован- ность.данных.в.исходном.и.целевом.кластерах,.но.согласованность.только.их..
    В.результате.у.тем.могут.появиться.различное.число.разделов,.разные.коэффи-

    Резюме 211
    циенты.репликации.и.различные.настройки.уровня.темы..Если.вы.увеличите.
    длительность.хранения.информации.с.одной.до.трех.недель.на.исходном.кластере.
    и.забудете.проделать.это.на.DR-кластере,.то.при.аварийном.переключении.вас.
    ждет.довольно.неприятный.сюрприз.в.виде.потери.информации.за.несколько.
    недель..Попытка.поддержания.согласованности.всех.этих.настроек.вручную.
    может.вызвать.ошибки.и.сбой.расположенных.далее.по.конвейеру.приложений.
    или.даже.самой.репликации.в.случае.рассогласованности.подсистем.
    ‰
    ‰
    Проблемы управления кластером..Мы.уже.видели,.что.MirrorMaker.обычно.
    развертывается.в.виде.кластера.из.нескольких.экземпляров..А.это.еще.один.
    кластер,.нужно.как-то.развернуть.его,.управлять.им.и.выполнять.мониторинг..
    Управление.конфигурацией.MirrorMaker.из-за.двух.файлов.конфигурации.
    и.большого.числа.параметров.и.так.представляет.собой.непростую.задачу..
    Ее.сложность.только.возрастает,.если.кластеров.больше.двух,.а.репликация.
    односторонняя..При.трех.кластерах.и.архитектуре.типа.«активный.—.активный».
    вам.придется.развертывать.шесть.кластеров.MirrorMaker,.вероятно,.с.тремя.
    экземплярами.в.каждом.как.минимум,.выполнять.их.мониторинг.и.настрой- ку..При.пяти.кластерах.типа.«активный.—.активный».количество.кластеров.
    MirrorMaker.возрастает.до.20.
    Компания.Confluent.ради.минимизации.издержек.администрирования.и.без.того.
    загруженных.корпоративных.IT-отделов.приняла.решение.реализовать.Replicator.
    в.виде.коннектора.производителя.для.фреймворка.Kafka.Connect,.который.бы.чи- тал.данные.из.другого.кластера.Kafka,.а.не.из.базы.данных..Вспомните.архитектуру.
    Kafka.Connect.из.главы.7:.каждый.коннектор.делит.нагрузку.между.задачами,.чис- ло.которых.можно.настроить..В.Replicator.каждая.задача.представляет.собой.пару.
    «потребитель/производитель»..Фреймворк.Connect.распределяет.эти.задачи.по.
    различным.рабочим.узлам.по.мере.необходимости,.так.что.все.задачи.могут.быть.
    на.одном.сервере.или.распределяться.по.нескольким..Таким.образом,.отпадает.
    необходимость.вручную.подсчитывать,.сколько.потоков.MirrorMaker.должно.
    приходиться.на.один.экземпляр.и.сколько.экземпляров.—.на.машину..В.Kafka.
    Connect.есть.также.API.REST.для.централизованного.управления.настройка- ми.коннекторов.и.задач..Если.считать,.что.по.другим.причинам.в.большинство.
    схем.развертывания.Kafka.включен.Kafka.Connect.(очень.популярный.сценарий.
    использования.—.отправка.событий.изменения.базы.данных.в.Kafka),.то.можно.
    уменьшить.число.кластеров,.которыми.нужно.будет.управлять,.за.счет.запуска.
    Replicator.внутри.Kafka.Connect..Другое.важное.преимущество.состоит.в.том,.
    что.коннектор.Replicator.реплицирует.не.только.данные.из.списка.тем.Kafka,.но.
    и.настройки.тем.ZooKeeper.
    Резюме
    Мы.начали.эту.главу.с.описания.причин,.по.которым.вам.может.понадобиться.
    более.одного.кластера.Kafka,.после.чего.рассмотрели.несколько.распространенных.
    мультикластерных.архитектур,.начиная.с.простейшей.и.заканчивая.чрезвычайно.
    сложными..Мы.углубились.в.подробности.реализации.архитектуры.восстановления.

    212 Глава 8 • Зеркальное копирование между кластерами после.сбоя.и.сравнение.различных.ее.вариантов..Далее.перешли.к.утилитам,.начав.
    с.MirrorMaker.Apache.Kafka.и.обсудив.немало.нюансов.ее.промышленной.экс- плуатации..Завершили.главу.обзором.двух.ее.альтернатив,.позволяющих.решить.
    некоторые.из.возникающих.при.работе.MirrorMaker.проблем.
    Какие.бы.архитектуру.и.утилиты.вы.ни.выбрали,.помните.о.необходимости.мони- торинга.и.тестирования.мультикластерной.конфигурации.и.конвейеров.зеркаль- ного.копирования,.как.и.всего.остального,.что.попадает.в.промышленную.эксплу- атацию..А.поскольку.управление.мультикластерной.системой.в.Kafka.проще,.чем.
    при.работе.с.реляционными.базами.данных,.некоторые.компании.вспоминают.об.
    этом.слишком.поздно.и.недостаточно.внимательно.относятся.к.ее.проектированию,.
    планированию,.тестированию,.автоматизации.развертывания,.мониторингу.и.об- служиванию..Вы.намного.повысите.вероятность.того,.что.управление.несколькими.
    кластерами.Kafka.окажется.успешным,.если.отнесетесь.к.управлению.мультикла- стерной.архитектурой.всерьез,.по.возможности.сделав.его.частью.единого.для.всей.
    организации.плана.восстановления.после.аварийного.сбоя.или.плана.географиче- ского.разнесения.данных.

    9
    Администрирование Kafka
    Kafka.предоставляет.пользователям.несколько.утилит.командной.строки.(CLI),.
    удобных.для.администрирования.кластеров..Они.реализованы.в.виде.классов.Java,.
    для.правильного.вызова.которых.имеются.наборы.сценариев..Эти.утилиты.позво- ляют.выполнять.простейшие.действия,.но.более.сложные.операции.реализовать.
    с.их.помощью.нельзя..В.этой.главе.мы.опишем.доступные.в.проекте.Apache.Kafka.
    утилиты..Дополнительную.информацию.о.более.продвинутых.утилитах,.создан- ных.сообществом.разработчиков.вне.рамок.основного.проекта.Kafka,.можно.найти.
    на.сайте.Apache.Kafka.(
    https://kafka.apache.org/).
    Авторизация административных операций
    В Apache Kafka реализованы аутентификация и авторизация для управления операциями с темами, но для большинства операций над кластером они пока не поддерживаются. Это значит, что вышеупомянутые утилиты командной строки можно использовать без всякой аутентификации, то есть такие операции, как из- менение темы, можно выполнять без какой-либо проверки на безопасность или аудита. Соответствующая функциональность находится в процессе разработки и скоро будет добавлена в Kafka.
    Операции с темами
    Утилита.kafka-topics.sh.позволяет.легко.выполнить.большинство.операций.с.те- мами.(изменять.настройки.тем.с.ее.помощью.не.рекомендуется,.соответствующая.
    функциональность.была.перенесена.в.утилиту.kafka-configs.sh)..Она.позволяет.
    создавать,.менять,.удалять.и.выводить.информацию.об.имеющихся.в.кластере.те- мах..Для.ее.использования.необходимо.задать.строку.подключения.ZooKeeper.для.
    кластера.с.помощью.аргумента.
    --zookeeper
    ..В.приводимых.далее.примерах.пред- полагается,.что.строка.подключения.ZooKeeper.имеет.вид.
    zoo1.examp le.com:2181/
    kafka-cluster

    214 Глава 9 • Администрирование Kafka
    Проверьте версию
    Многие утилиты командной строки Kafka работают непосредственно с хранимыми в ZooKeeper метаданными, а не подключаются к брокерам. Поэтому важно про- верять соответствие версии используемых утилит версии брокеров в кластере.
    Безопаснее всего запускать версии этих утилит, установленные на самих брокерах
    Kafka.
    Создание новой темы
    Для.создания.новой.темы.в.кластере.необходимо.задать.три.аргумента.(их.следует.
    указывать,.несмотря.на.то.что.для.некоторых.из.них.могут.быть.заданы.значения.
    по.умолчанию.на.уровне.брокера):
    ‰
    ‰
    название темы —.название.создаваемой.темы;
    ‰
    ‰
    коэффициент репликации —.количество.реплик.темы.в.кластере;
    ‰
    ‰
    разделы —.число.создаваемых.для.данной.темы.разделов.
    1   ...   22   23   24   25   26   27   28   29   ...   39


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