3. Запуск и остановка Программы

Программа не имеет графического интерфейса и запускается автоматически после запуска сервера.

Все компоненты Программы оформлены в виде системных служб, имеют отдельные файлы конфигурации, автоматически запускаются при старте сервера и автоматически останавливаются при его выключении.

При необходимости любой из сервисов/модулей можно остановить и перезапустить.

Данный раздел содержит описание запуска и остановки модулей ручным способом.

Внимание

Программные средства настраиваются в зависимости от используемой конфигурации. Состав компонентов приведен в разделе Состав компонентов в дистрибутиве документа «Техническое описание системы».

3.1. Prostore

3.1.1. Запуск

Процесс запуска Prostore приведен в документации сервиса: https://prostore.datamart.ru/docs_prostore/maintenance/maintenance.html.

3.2. СМЭВ QL Сервер

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

3.2.1. Быстрый старт

3.2.1.1. Создание и конфигурация

Создать новое приложение СМЭВ QL Сервера командой:

java -jar smevql-server-all.jar new <new-app-name>

Данная команда создаст структуру папок сервера и исполняемый файл smevql внутри <new-app-name>.

3.2.1.2. Запуск и управление

Запуск СМЭВ QL Сервера осуществляется командой:

./smevql start -e <environment>
  • environment - задается название среды разработки. Без указания окружения сервер будет запущен в development.

В момент запуска приложения выполняются проверки наличия и корректности заполнения конфигурационного файла и файлов моделей.

Типовые ошибки представлены ниже:

Тип ошибки: Некорректный формат или отсутствие файла модели

Пример лог-записи: {«@timestamp»:»2024-01-10T16:25:55.460659+03:00»,»@version»:»1»,»message»:»Ошибка старта сервера»,»logger_name»:»ru.gov.digital.smevql.server.RequestHandler»,»thread_name»:»main»,«level»:»ERROR»,»level_value»:40000,»stack_trace»:»java.lang.RuntimeException: Ошибка парсинга модели данных из файла

Тип ошибки: Некорректно заполнен конфигурационный файл

Пример лог-записи: {«@timestamp»:»2024-01-10T16:27:01.202248+03:00»,»@version»:»1»,»message»:»Ошибка старта сервера»,»logger_name»:»ru.gov.digital.smevql.server.RequestHandler»,»thread_name»:»main»,«level»:»ERROR»,»level_value»:40000,»stack_trace»:»net.mamoe.yamlkt.YamlDecodingException:Top-level decoder: Yaml Block Map: bad indentation, baseIndent=0, newIndent=2n uri: smevql/api/v1

Остановка СМЭВ QL Сервера осуществляется командой:

./smevql stop

Перезапуск СМЭВ QL Сервера осуществляется командой:

./smevql restart

3.2.1.3. Работа с сервером

3.2.1.3.1. Генераторы

Генераторы создают папки и файлы-шаблоны с начальными значениями. Для запуска генератора можно использовать полную команду ./smevql generate или короткий алиас ./smevql g.

Новый пустой источник генерируется командой:

./smevql g source <source-name>

Пример источника на основе Prostore:

prostore_source:
type: rest
version: '1.0'
adapter: prostore
protocol: http
host: smevql-dtm-prostore01.ru-central1.internal
port: 9090
path: api/v1/datamarts/query?format=json
headers:
    - content-type: application/json
threads-count: 4
connection-timeout: 30

Новая модель генерируется командой:

./smevql g model <model-name>

Пример модели:

resources:
- mo: *base_model
    name: Медицинская организация
    description: Логическая таблица "Медицинская организация"
    fields:
    <<: *default_fields
    parent_id:
        <<: *ds
        name: parent_id
    update_ts:
        <<: *dts
        name: update_ts
    address:
        <<: *ds
        name: address
    address_fias_guid:
        <<: *ds
        name: address_fias_guid
    enabled:
        <<: *ds
        name: enabled
    name:
        <<: *ds
        name: name
    region_okato:
        <<: *ds
        name: region_okato
    create_ts:
        <<: *dts
        name: create_ts
    id:
        <<: *pks
        name: id
    rmis_id:
        <<: *ds
        name: rmis_id
    phone:
        <<: *ds
        name: phone
    connections:
    has_many: []
    belongs_to:
    - attachment:
        primary_key: [ mo_id ]
        foreign_key: [ id ]
    - resource:
        primary_key: [ mo_id ]
        foreign_key: [ id ]
    extract:
    source:
        - name: prostore
        table: misdm02.mo
- profilecode_resource: *base_model
- resource: *base_model
- observation: *base_model
- book: *base_model
- slot: *base_model
- monitoring: *base_model
- referral: *base_model
- attachment: *base_model
- patient: *base_model
- service: *base_model
- unaccessible_period: *base_model

Из существующего Prostore модель генерируется командой:

./smevql schema-gen test -h localhost -p 9090 -d demo_view
  • test - имя директории, куда будет выгружена модель;

  • -h localhost -p 9090 - это хост и порт Prostore;

  • -d demo_view - витрина (схема).

3.2.1.4. Сборка проекта

Собрать проект можно с помощью gradle:

./gradlew clean build

3.3. СМЭВ3-адаптер

3.3.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start smev3-adapter

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до smev3-adapter.jar>

команды заключенные в [] выполняются опционально.

3.3.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop smev3-adapter

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep smev3-adapter

3.4. CSV-Uploader

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

3.4.1. Запуск CSV-uploader

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start csv-uploader

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до csv-uploader.jar>

команды заключенные в [] выполняются опционально.

3.4.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop csv-uploader

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep csv-uploader

3.5. СМЭВ4-адаптер - Модуль исполнения запросов

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

3.5.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-query

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-query.jar>

команды заключенные в [] выполняются опционально.

3.5.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-query

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep podd-adapter-query

3.6. СМЭВ4-адаптер – Модуль MPPR

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

3.6.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-mppr

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-mppr.jar>

команды заключенные в [] выполняются опционально.

3.6.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-mppr

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep podd-adapter-mppr

3.7. СМЭВ4-адаптер – Модуль MPPW

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

3.7.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-mppw

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-mppw.jar>

команды заключенные в [] выполняются опционально.

3.7.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-mppw

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep  podd-adapter-mppw

3.8. СМЭВ4-адаптер – Модуль импорта данных табличных параметров

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

3.8.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-import-tp

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-import-tp.jar>

команды заключенные в [] выполняются опционально.

3.8.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-import-tp

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep podd-adapter-import-tp

3.9. СМЭВ4-адаптер – Модуль группировки данных табличных параметров

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

3.9.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-group-tp

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-group-tp.jar>

команды заключенные в [] выполняются опционально.

3.9.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-group-tp

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep podd-adapter-group-tp

3.10. СМЭВ4-адаптер – Модуль дефрагментации чанков табличных параметров

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

3.10.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-defragmentator

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-defragmentator.jar>

команды заключенные в [] выполняются опционально.

3.10.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-defragmentator

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep podd-adapter-defragmentator

3.11. DATA-uploader – Модуль исполнения асинхронных заданий

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

3.11.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start data-uploader

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до data-uploader.jar>

команды заключенные в [] выполняются опционально.

3.11.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop data-uploader

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep data-uploader

3.12. REST-uploader – Модуль асинхронной загрузки данных из сторонних источников

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

3.12.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start rest-uploader

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до rest-uploader.jar>

команды заключенные в [] выполняются опционально.

3.12.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop rest-uploader

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep rest-uploader

3.12.3. Добавление поставщика данных

Для добавления поставщика данных должен генерироваться токен авторизации, который передается поставщику.

Генерация токена осуществляется по следующим шагам:

  1. Открыть web-страницу https://jwt.io/

  2. Выбрать алгоритм HS256;

  3. Ввести в payload следующие поля:

{
"sub": "1234567890",
"iss": "John Doe"
}

где:

  • sub - идентификатор поставщика данных, для которого сформирован токен;

  • iss - кем сформирован токен.

Подпись токена формируется методом получения хеш-функции SHA-256 с секретом. Для этого нужно в verify signature в поле your-256-bit-secret ввести значение из test-secret настроек сервиса REST-uploader.

Для добавления идентификатора поставщика данных в Базу данных Redis необходимо в структуре set, содержащую идентификаторы поставщика данных, выполнить операцию SADD:

SADD ids ProviderID

где:

  • ids - ключ, по которому осуществляется доступ к набору элементов;

  • ProviderID - идентификатор поставщика данных.

В случае, когда ожидание ответа на запрос превысило указанное количество времени, необходимо сделать повторный запрос.

В случае возникновения ошибок при обработке файлов сотрудникам, загружаюмщим данные необходимо изучить возврат REST-uploader. Если ошибка внутренняя, то нужно обратиться к администратору Витрины. Администратор изучит логи REST-uploader / Data-uploader.

3.13. СМЭВ4-адаптер – Модуль подписки

Описание настроек модуля приведено в «Руководстве администратора».

3.13.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start podd-adapter-replicator

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до podd-adapter-replicator.jar>

команды заключенные в [] выполняются опционально.

3.13.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop podd-adapter-replicator

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep  podd-adapter-replicator

3.14. BLOB-адаптер

Описание настроек модуля приведено в «Руководстве администратора».

3.14.1. Запуск модуля

Для ручного запуска необходимо подключиться по SSH на сервер и в командной строке запустить jar-файл, указав его расположение.

Например:

java
    -Dconfig.location=<путь до application.yml>
    -jar <путь до blob-adapter.jar> &
  • Dconfig.location – путь до конфигурационного файла модуля (application.yml).

3.14.2. Остановка модуля

Для ручной остановки необходимо подключиться по ssh на сервер, найти процесс, который содержит jar-файл и остановить его.

Пример:

ps aux | grep   blob-adapter

kill «номер процесса».

3.15. Сервис формирования документов

Описание настроек модуля приведено в «Руководстве администратора».

3.15.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start printable-form-service

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до printable-form-service.jar>

команды заключенные в [] выполняются опционально.

3.15.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop printable-form-service

Для ручной остановки необходимо подключиться по ssh на сервер, найти процесс, который содержит jar-файл и остановить его.

Пример:

ps aux | grep  printable-form-service

3.16. Утилита Backup manager

Описание настроек утилиты приведено в разделе Бекапирование Витрины данных НСУД.

3.16.1. Запуск утилиты

Для запуска механизма резервного копирования, администратору системы нужно перейти в директорию backup-tools (утилиты Backup Manager и DTM-Tools должны быть расположены в одной директории) и выполнить в консоли команду backup:

java -jar backup-manager-1.10.0-SNAPSHOT.jar backup --dtmTools ./dtm-tools-1.12.0.jar --kafkaBrokers 10.81.7.90:12541 --prostore 10.81.7.90:12520

Backup Manager принимает команду в качестве аргумента, обеспечивает выполнение 2 операций:

  • backup - резервное копирование, вторым аргументом указывается целевой архив;

  • restore - восстановление из резервной копии.

В процессе бекапирования или восстановления из бекапа утилита Backup Manager выводит в консоли сообщения об основных шагах и выполняемых операциях вида:

  • отправлена команда остановки обработки запросов;

  • отправлена команда бекапирования датамарта (datamart).

3.17. ETL

3.17.1. Apache Airflow

Apache Airflow представляет собой набор контейнеров, управляемых Docker.

Ниже приведено описание запуска и остановки Apache Airflow.

3.17.1.1. Запуск

Для запуска Apache Airflow нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Airflow.

Например:

cd ~/<folder-name>

Выполните команду:

docker-compose start

3.17.1.2. Остановка

Для остановки Apache Airflow нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Airflow.

В папке, где расположен файл docker-compose.yaml выполните команду:

docker-compose stop

3.17.2. Apache Spark

Apache Spark представляет собой контейнер, управляемый Docker.

Ниже приведено описание запуска и остановки Apache Spark.

3.17.2.1. Запуск

Для запуска Apache Spark нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Spark.

Например:

cd ~/<folder-name>

Выполните команду:

docker-compose start

Для запуска отдельно мастера и воркера Apache Spark можно использовать команды Docker:

Пример команды:

docker start spark-master
docker start spark-worker-1

3.17.2.2. Остановка

Для остановки Apache Spark нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Spark.

В папке, где расположен файл docker-compose.yaml выполните команду:

docker-compose stop

Для остановки отдельно мастера и воркера Apache Spark можно использовать команды Docker:

Пример команды:

docker stop spark-master
docker stop spark-worker-1

3.17.3. Apache Hadoop

Apache Hadoop представляет собой набор контейнеров, управляемых Docker.

Ниже приведено описание запуска и остановки Apache Hadoop.

3.17.3.1. Запуск

Для запуска Apache Hadoop нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Hadoop.

Например:

cd ~/<folder-name>

Выполните команду:

docker-compose start

Для запуска отдельно каждого контейнера Apache Hadoop можно использовать команды Docker:

Пример команды:

docker start namenode
docker start datanode
docker start resourcemanager
docker start nodemanager
docker start historyserver

3.17.3.2. Остановка

Для остановки Apache Hadoop нужно перейти в директорию с файлом docker-compose.yml, созданным при установке Apache Hadoop.

В папке, где расположен файл docker-compose.yaml выполните команду:

docker-compose stop

Для остановки отдельно каждого контейнера Apache Hadoop можно использовать команды Docker:

Пример команды:

docker stop namenode
docker stop datanode
docker stop resourcemanager
docker stop nodemanager
docker stop historyserver

3.17.4. Tarantool (Vynil)

Tarantool (Vynil) представляет собой контейнер, управляемый Docker.

Описание запуска и остановки Tarantool (Vynil) приведено в файле docker-compose.yml директории Tarantool.

3.17.4.1. Запуск

Для запуска Tarantool (Vynil) перейдите в директорию с файлом docker-compose.yml, созданным при установке Tarantool (Vynil).

Например:

cd ~/direct

Выполните команду:

docker-compose start

Для запуска отдельно каждого контейнера Tarantool (Vynil) можно использовать команды Docker:

Пример команды:

docker start tarantool1
docker start tarantool2

3.17.4.2. Остановка

Для остановки Tarantool (Vynil) перейдите в директорию с файлом docker-compose.yml, созданным при установке Tarantool (Vynil).

В папке, где расположен файл docker-compose.yaml выполните команду:

docker-compose stop

Для остановки отдельно каждого контейнера Tarantool (Vynil) можно использовать команды Docker:

Пример команды:

docker stop tarantool1
docker stop tarantool2

3.18. REST-адаптер

REST-адаптер представляет собой контейнер, управляемый Docker. Для запуска и остановки REST-адаптер используются команды Docker.

Запуск REST-адаптер выполняется путём запуска Docker командой:

docker start rest-adapter

Остановка REST-адаптер выполняется путём остановки Docker командой:

docker stop rest-adapter

3.19. Counter-provider - Сервис генерации уникального номера

Описание настроек модуля приведено в Настройка программных средств.

3.19.1. Запуск модуля

Модуль может быть поставлен как контейнер, управляемый Docker или как JAR-файл.

Запуск выполняется при помощи Docker команды:

docker start counter-provider

Если модуль поставляется как JAR-файл, вводится команда

java
    [-Dconfig.location=<путь до application.yml> ]
    [-Dlogging.config=logback.xml]
    -jar <путь до counter-provider.jar>

команды заключенные в [] выполняются опционально.

3.19.2. Остановка модуля

Остановка модуля выполняется при помощи Docker команды:

docker stop counter-provider

Для ручной остановки необходимо подключиться по SSH на сервер, найти процесс, который содержит JAR-файл и остановить его.

Пример:

ps aux | grep counter-provider

3.20. Установка коннектора Kafka-Postgres

  1. Скопировать файлы kafka-postgres-writer-0.3.0.jar, kafka-postgres-reader-0.3.0.jar, kafka-postgres-avro-0.3.0.jar из дистрибутива и загрузить в папку /kafka-postgres-connector.

  2. Скопировать конфигурационные файлы ``application.yaml``сервисов KAFKA-POSTGRES-WRITER и KAFKA-POSTGRES-READER в папку kafka-postgres-connector/config

Конфигурационный файл KAFKA-POSTGRES-WRITER application.yaml:

logging:
level:
    ru.datamart.kafka: ${LOG_LEVEL:DEBUG}
    org.apache.kafka: ${KAFKA_LOG_LEVEL:INFO}

http:
port: ${SERVER_PORT:8096}

vertx:
pools:
    eventLoopPoolSize: ${VERTX_EVENT_LOOP_SIZE:12}
    workersPoolSize: ${VERTX_WORKERS_POOL_SIZE:32}
verticle:
    query:
    instances: ${QUERY_VERTICLE_INSTANCES:12}
    insert:
    poolSize: ${INSERT_WORKER_POOL_SIZE:32}
    insertPeriodMs: ${INSERT_PERIOD_MS:1000}
    batchSize: ${INSERT_BATCH_SIZE:500}
    consumer:
    poolSize: ${KAFKA_CONSUMER_WORKER_POOL_SIZE:32}
    maxFetchSize: ${KAFKA_CONSUMER_MAX_FETCH_SIZE:10000}
    commit:
    poolSize: ${KAFKA_COMMIT_WORKER_POOL_SIZE:1}
    commitPeriodMs: ${KAFKA_COMMIT_WORKER_COMMIT_PERIOD_MS:1000}

client:
kafka:
    consumer:
    checkingTimeoutMs: ${KAFKA_CHECKING_TIMEOUT_MS:10000}
    responseTimeoutMs: ${KAFKA_RESPONSE_TIMEOUT_MS:10000}
    consumerSize: ${KAFKA_CONSUMER_SIZE:10}
    closeConsumersTimeout: ${KAFKA_CLOSE_CONSUMER_TIMEOUT:15000}
    property:
        bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:kafka.host:9092}
        group.id: ${KAFKA_CONSUMER_GROUP_ID:postgres-query-execution}
        auto.offset.reset: ${KAFKA_AUTO_OFFSET_RESET:earliest}
        enable.auto.commit: ${KAFKA_AUTO_COMMIT:false}
        auto.commit.interval.ms: ${KAFKA_AUTO_INTERVAL_MS:1000}

datasource:
postgres:
    database: ${POSTGRES_DB_NAME:test}
    user: ${POSTGRES_USERNAME:dtm}
    password: ${POSTGRES_PASS:dtm}
    hosts: ${POSTGRES_HOSTS:localhost:5432}
    poolSize: ${POSTGRES_POOLSIZE:10}
    preparedStatementsCacheMaxSize: ${POSTGRES_CACHE_MAX_SIZE:256}
    preparedStatementsCacheSqlLimit: ${POSTGRES_CACHE_SQL_LIMIT:2048}
    preparedStatementsCache: ${POSTGRES_CACHE:true}

Конфигурационный файл KAFKA-POSTGRES-READER application.yaml:

logging:
level:
    ru.datamart.kafka: ${LOG_LEVEL:DEBUG}
    org.apache.kafka: ${KAFKA_LOG_LEVEL:INFO}

http:
port: ${SERVER_PORT:8094}

vertx:
pools:
    eventLoopPoolSize: ${VERTX_EVENT_LOOP_SIZE:12}
    workersPoolSize: ${VERTX_WORKERS_POOL_SIZE:32}
verticle:
    query:
    instances: ${QUERY_VERTICLE_INSTANCES:12}

datasource:
postgres:
    database: ${POSTGRES_DB_NAME:test}
    user: ${POSTGRES_USERNAME:dtm}
    password: ${POSTGRES_PASS:dtm}
    hosts: ${POSTGRES_HOSTS:localhost:5432}
    poolSize: ${POSTGRES_POOLSIZE:10}
    preparedStatementsCacheMaxSize: ${POSTGRES_CACHE_MAX_SIZE:256}
    preparedStatementsCacheSqlLimit: ${POSTGRES_CACHE_SQL_LIMIT:2048}
    preparedStatementsCache: ${POSTGRES_CACHE:true}
    fetchSize: ${POSTGRES_FETCH_SIZE:1000}

kafka:
client:
    property:
    key.serializer: org.apache.kafka.common.serialization.ByteArraySerializer
    value.serializer: org.apache.kafka.common.serialization.ByteArraySerializer

3.21. Arenadata Cluster Manager (ADCM)

3.21.1. Запуск

ADCM представляет собой контейнер, управляемый Docker.

Для запуска ADCM выполните следующие команды:

  1. Запустите ADCM введя команду Docker:

docker start adcm

2. Подключитесь через браузер к веб-интерфейсу по адресу

http://<ip_adress_of_server>:8000.
  1. Авторизуйтесь в веб-интерфейсе.

3.21.2. Остановка

Остановка ADCM выполняется путём остановки Docker командой:

docker stop adcm

3.22. Arenadata Streaming (ADS)

Компонент запускается автоматически при установке как два systemd сервиса:

  • Kafka;

  • Zookeeper.

Включен автозапуск сервисов при перезапуске сервера.

Запуск и остановка ADS возможна как в консоли (см Раздел 3.22.3), так и через ADCM (см Раздел 3.22.4).

3.22.1. Kafka

3.22.1.1. Запуск

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. В левом меню, выберите пункт Services.

  4. В таблице со списком сервисов ADS, в строке Kafka, нажмите значок Actions и нажмите кнопку Start (см. Рисунок - 3.6).

3.22.1.2. Остановка

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. В левом меню, выберите пункт Services.

  4. В таблице со списком сервисов ADS, в строке Kafka, нажмите значок Actions и нажмите кнопку Stop (см. Рисунок - 3.6).

3.22.1.3. Перезапуск

Для перезапуска Kafka в Arenadata Cluster Manager (ADCM), выполните следующие действия:

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. В левом меню, выберите пункт Services.

  4. В таблице со списком сервисов ADS, в строке Kafka, нажмите значок Actions и нажмите кнопку Restart (см. Рисунок - 3.6).

3.22.2. Zookeeper

3.22.2.1. Запуск

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Нажмите вкладку Cluster.

  3. Перейдите в пункт кластер ADS.

  4. В левом меню, выберите пункт Services.

  5. В таблице со списком сервисов ADS, в строке Zookeeper, нажмите значок Actions и нажмите кнопку Start (см. Рисунок - 3.6).

  6. Подтвердите действие, для этого нажмите кнопку Run.

Запуск сервиса Zookeeper через ADCM

Рисунок - 3.6 Запуск сервиса Zookeeper через ADCM

3.22.2.2. Остановка

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. В левом меню, выберите пункт Services.

  4. В таблице со списком сервисов ADS, в строке Zookeeper, нажмите значок Actions и нажмите кнопку Stop (см. Рисунок - 3.6).

3.22.2.3. Перезапуск

Для перезапуска Zookeeper в Arenadata Cluster Manager (ADCM), выполните следующие действия:

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. В левом меню, выберите пункт Services.

  4. В таблице со списком сервисов ADS, в строке Zookeeper, нажмите значок Actions и нажмите кнопку Restart (см. Рисунок - 3.6).

3.22.3. Запуск и остановка сервисов ADS через консоль

Для ручной остановки и запуска необходимо подключиться по SSH на сервер и с правами sudo использовать штатную функцию systemctl.

Внимание

Сервис Kafka всегда необходимо запускать после сервиса Zookeeper.

Например:

sudo systemctl stop kafka sudo systemctl stop zookeeper sudo systemctl start zookeeper sudo systemctl start kafka

3.22.4. Запуск и остановка сервисов ADS через ADCM

Графический пользовательский интерфейс Arenadata Cluster Manager (ADCM) предоставляет возможность независимо выполнять операции запуска, остановки и перезапуска для сервисов Kafka и Zookeeper.

Запуск и остановка Arenadata Streaming (ADS) осуществляется через Arenadata Cluster Manager (ADCM) (см. Рисунок - 3.7).

3.22.4.1. Запуск

Для запуска Arenadata Cluster Manager (ADCM), выполните следующие действия:

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. Нажмите кнопку Run actions и выберите в контекстном меню пункт Start (см. Рисунок - 3.7).

Запуск Arenadata Streaming (ADS) в ADCM

Рисунок - 3.7 Запуск Arenadata Streaming (ADS) в ADCM

3.22.4.2. Остановка

Внимание

Остановка Arenadata Streaming (ADS) приведет к остановке сервисов Zookeeper и Kafka.

Для остановки Arenadata Cluster Manager (ADCM), выполните следующие действия:

  1. Авторизуйтесь в Arenadata Cluster Manager (ADCM).

  2. Перейдите в пункт кластер ADS.

  3. Нажмите кнопку Run actions и выберите в контекстном меню пункт Stop (см. Рисунок - 3.8).

Остановка Arenadata Streaming (ADS) в ADCM

Рисунок - 3.8 Остановка Arenadata Streaming (ADS) в ADCM