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. DATA-uploader – Модуль исполнения асинхронных заданий

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

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

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

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

docker start data-uploader

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

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

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

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

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

docker stop data-uploader

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

Пример:

ps aux | grep data-uploader

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

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

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

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

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

docker start rest-uploader

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

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

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

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

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

.. code-block::

docker stop rest-uploader

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

Пример:

ps aux | grep rest-uploader

3.6.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.7. BLOB-адаптер

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

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

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

Например:

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

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

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

Пример:

ps aux | grep   blob-adapter

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

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

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

3.8.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.8.2. Остановка модуля

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

docker stop printable-form-service

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

Пример:

ps aux | grep  printable-form-service

3.9. ETL

3.9.1. Apache Airflow

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

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

3.9.1.1. Запуск

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

Например:

cd ~/<folder-name>

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

docker-compose start

3.9.1.2. Остановка

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

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

docker-compose stop

3.9.2. Apache Spark

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

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

3.9.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.9.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.9.3. Apache Hadoop

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

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

3.9.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.9.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.9.4. Tarantool (Vynil)

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

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

3.9.4.1. Запуск

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

Например:

cd ~/direct

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

docker-compose start

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

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

docker start tarantool1
docker start tarantool2

3.9.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.10. Counter-provider - Сервис генерации уникального номера

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

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

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

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

docker start counter-provider

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

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

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

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

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

docker stop counter-provider

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

Пример:

ps aux | grep counter-provider

3.11. Arenadata Cluster Manager (ADCM)

3.11.1. Запуск

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

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

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

docker start adcm

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

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

3.11.2. Остановка

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

docker stop adcm