3. Запуск и остановка Компонента
Компонент не имеет графического интерфейса и запускается автоматически после запуска сервера.
Все модули Компонента оформлены в виде системных служб, имеют отдельные файлы конфигурации, автоматически запускаются при старте сервера и автоматически останавливаются при его выключении.
При необходимости любой из сервисов/модулей можно остановить и перезапустить.
Данный раздел содержит описание запуска и остановки модулей ручным способом.
Примечание
Программные средства настраиваются в зависимости от используемой конфигурации. Состав модулей приведен в разделе Состав модулей в дистрибутиве документа «Техническое описание Компонента «Витрина данных».
3.1. Prostore
3.1.1. Запуск Prostore
Процесс запуска 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. Добавление поставщика данных
Для добавления поставщика данных должен генерироваться токен авторизации, который передается поставщику.
Генерация токена осуществляется по следующим шагам:
Открыть web-страницу https://jwt.io/;
Выбрать алгоритм HS256;
Ввести в 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 start namenode
docker start datanode
docker start resourcemanager
docker start nodemanager
docker start 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 start tarantool1
docker start 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 выполните следующие команды:
Запустить ADCM, введя команду Docker:
docker start adcm
2. Подключиться через браузер к веб-интерфейсу по адресу
http://<ip_adress_of_server>:8000.
Авторизоваться в веб-интерфейсе.
3.11.2. Остановка
Остановка ADCM выполняется путем остановки Docker-командой:
docker stop adcm