Руководство по установке#

Термины и определения#

Термин/аббревиатура

Определение

PID

Process Identifier, идентификатор процесса

SSL

Secure Sockets Layer, криптографический протокол, предназначенный для защиты обмена данными в сети

СПО

Системное программное обеспечение

Системные требования#

Описание комплекса технических средств и системного программного обеспечения (СПО), необходимых для работы Platform V Corax#

В таблице ниже содержится перечень СПО, требуемого для функционирования Platform V Corax.

Наименование

Версия

Разрядность

Тип

Назначение

Альт СП

8

64

Операционная система

Операционная система

Open JDK

8

64

Программная платформа

Среда выполнения Java-приложений

В данном документе описывается развертывание на Linux.

Установка#

Установка показана на примере версии Apache Platform V Corax 2.11-0.9.0.0.

Распакуйте архив дистрибутива kafka_2.11-0.9.0.0.tgz и зайдите в папку с помощью команд:

tar --xzf kafka_2.11-0.9.0.0.tgz
cd kafka_2.11-0.9.0.0

Запуск сервера Platform V Corax#

Выполните запуск сервера Platform V Corax в следующем порядке:

  1. Запуск узла Platform V Corax:

    • Запуск Zookeeper:

      > bin/zookeeper-server-start.sh config/zookeeper.properties
      
       [2015-03-09 15:01:37,495]  INFO Reading configuration from config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
       ...
      

      Где config/zookeeper.properties — файл конфигурации Zookeeper.

    • Запуск узла Platform V Corax:

      > bin/kafka-server-start.sh config/server.properties
      
       [2015-03-09 15:02:37,495]  INFO Verifying properties (kafka.utils.VerifiableProperties)
       [2015-03-09 15:02:37,495]  INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
      ...
      

      Где config/server.properties — файл конфигураций узла (брокера) Platform V Corax.

    • Запуск узлов Zookeeper и Platform V Corax в режиме демона:

      > bin/zookeeper-start.sh    -daemon config/zookeeper.properties
      > bin/kafka-server-start.sh -daemon config/server.properties
      

      Где -daemon — опция для запуска в режиме демона.

      Запуск в режиме демона является рекомендуемым способом для эксплуатации.

      Чтение журналов Zookeeper и Platform V Corax при запуске в режиме демона:

      • журнал приложения Zookeeper выводится в файл logs/zookeeper.out;

      • журнал приложения Platform V Corax выводится в файл logs/server.log.

      Запуск узлов Zookeeper и Platform V Corax в режиме демона с выводом журнала из файла в консоль:

      > bin/zookeeper-start.sh -daemon \
      config/zookeeper.properties && tail -f logs/zookeeper.out
      
      > bin/kafka-server-start.sh -daemon \
      config/server.properties && tail -f logs/server.log
      
  2. Для остановки узлов Platform V Corax и Zookeeper выполните скрипты в следующем порядке:

    > bin/kafka-server-stop.sh
    > bin/zookeeper-server-stop.sh
    
  3. Для проверки состояния процессов узлов Zookeeper и Platform V Corax воспользуйтесь поиском PID этих процессов в оперативной памяти:

    • Проверка состояния узла Platform V Corax с помощью поиска PID его процесса:

      > ps ax | grep -i 'kafka \. Kafka' | grep java | grep -v grep | awk '{print $1}'
      
      1234
      

      В результате выведется PID найденного процесса или пустая строка в случае его отсутствия.

    • Проверка состояния узла Platform V Corax командой, запрашивающей список топиков:

      > bin/kafka-topics.sh --list --zookeeper localhost:2181
      
      ...
      __ consumer _ offsets
      ...
      

      Где:

      • --list — опция, обозначающая режим вывода списка топиков;

      • --zookeeper — хост Zookeeper в формате IP:Port;

      • localhost — имя IP-адреса сервера, на котором запущен Zookeeper;

      • 2181 — порт clientPort, задаваемый в файле конфигураций config/zookeeper.properties для Zookeeper, через который осуществляется подключение клиентов.

      В результате будет выведен список топиков, в котором, например, может содержаться топик __ consumer _ offsets (если к этому топику подключался Потребитель).

      Примечания

      1. В текущей версии указанная команда будет работать только при отключенном SSL.

      2. Использование параметра --zookeeper для текущей версии считается устаревшим.

    • Проверка состояния узла Zookeeper с помощью поиска PID его процесса:

      > ps ax | grep -i 'zookeeper' | grep -v grep | awk '{print $1}'
      
      1234
      

      В результате выведется PID найденного процесса или пустая строка в случае его отсутствия.

Обновление#

Platform V Corax поддерживает обновление без прерывания сервиса в случае корректной конфигурации.

Системные требования, используемые для обновления:

  • Фактор репликации каждого топика не ниже min_insync_replicas+1.

  • Фактор репликации смещений не ниже 2.

  • Фактор репликации сведений о транзакциях не ниже 2.

Обновление без прерывания сервиса происходит путем последовательного перезапуска брокеров с обновлением исполняемых файлов и/или конфигурации. При смене версии протокола требуется задать дополнительные параметры конфигурации вида inter.broker.protocol.version=X и log.message.format.version=Х в файле свойств брокера.

Общий принцип обновления с версии X на версию X+1:

  1. В конфигурационном файле server.properties задайте параметры inter.broker.protocol.version=X и log.message.format.version=Х.

  2. Остановите работу одного из брокеров и замените исполняемые файлы.

  3. Запустите обновленный брокер и дождитесь окончания репликации (утилита kafka-topics не должна показывать ни одной не полностью реплицированной партиции).

  4. Повторите шаги 2 и 3 для каждого последующего брокера кластера.

  5. Уберите параметр inter.broker.protocol.version=X из файлов server.properties всех брокеров и выполните повторный перезапуск.

  6. После перехода клиентов на новую версию уберите параметр log.message.format.version=Х и перезапустить кластер.

Откат#

Для отката версии Corax выполните удаление текущией версии и установку требуемой.

Проверка работоспособности#

Для проверки работтоспособновти:

  1. Запустите Corax, выполнив команды (в разных терминалах):

    1. Запуск Zookeeper

    $ bin/zookeeper-server-start.sh config/zookeeper.properties
    
    1. Запуск брокера Kafka

    $ bin/kafka-server-start.sh config/server.properties
    
  2. Создайте топик для проверки работоспособности (в новом окне терминала):

    $ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
    

    Все инструменты командной строки Kafka имеют дополнительные опции. Для отображения информации о доступных опциях, запустите команду kafka-topics.sh без аргументов. Например, сущемтвует опция отображения количества разделов нового топика:

    $ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
    Topic:quickstart-events PartitionCount:1 ReplicationFactor:1 Configs:
    Topic: quickstart-events Partition: 0 Leader: 0 Replicas: 0 Isr: 0
    
  3. Запустите консольный клиент-производитель и запишите несколько событий в созданный ранее топик. По умолчанию каждая введенная строка приведет к записи в топик отдельного события.

    \$ bin/kafka-topics.sh \--describe \--topic quickstart-events \--bootstrap-server localhost:9092
    This is my first event
    This is my second event
    

    Работу клиента-производителя можно остановить в любое время при помощи комбинации клавиш Ctrl+C.

  4. Откройте новое окно терминала и запустите консольный клиент-потребитель для чтения созданных ранее событий:

    $ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
    This is my first event
    This is my second event
    

    Работу клиента-потребителя можно остановить в любое время при помощи комбинации клавиш Ctrl+C.

  5. Завершите работу среды Kafka необходимо:

    • Остановить работу клиента-производителя и клиента-потребителя с помощью сочетания клавиш Ctrl+C.

    • Остановить работу брокера Kafka сочетанием клавиш Ctrl+C.

    • Остановить сервер ZooKeeper сочетанием клавиш Ctrl+C.

    Для удаления данных и локальной среды Kafka, включая любые события, созданные в процессе работы, выполните команду:

    $ rm -rf /tmp/kafka-logs /tmp/zookeeper