5. Проверка Компонента
5.1. Проверка Компонента «Витрина данных» конфигурации Стандарт
Процесс установки Компонента описан в разделе Установка Компонента «Витрина данных» конфигурации Стандарт.
5.1.1. Проверка Arenadata Cluster Manager (ADCM)
Внимание
Arenadata Cluster Manager (ADCM) устанавливается только на РЕД ОС 7.2
Arenadata Cluster Manager (ADCM), при успешной установке, должен быть доступен по адресу http://<ip_adress_of_server>:8000.
Для авторизации используйте следующие данные:
логин:
admin;пароль:
admin.
5.1.2. Проверка ПО Prostore
Проверка ПО Prostore осуществляется путём отправки SQL-запросов к Prostore через клиентское JDBC-подключение и сопоставления ожидаемого эталонного и полученного результатов.
Проверка осуществляется согласно следующим этапам:
Создать Витрину в Prostore с помощью SQL-запроса:
CREATE DATABASE <имя несуществующей логической базы>, например,
CREATE DATABASE testdb;
Создать таблицу в Prostore со всеми типами колонок с помощью SQL-запроса:
CREATE TABLE <имя логической базы из п.1>.all_types (
- id int not null,
- double_col double,
- float_col float,
- char_col varchar(36),
- boolean_col boolean,
- int_col int not null,
- bigint_col bigint,
- date_col date,
- timestamp_col timestamp,
- primary key (id)
- )
- distributed by (id)
Проверить существование и структуру созданной таблицы в Prostore с помощью SQL-запросов:
select \* from <имя логической базы из п.1>.all_types
DATASOURCE_TYPE='ADG'
select \* from <имя логической базы из п.1>.all_types
DATASOURCE_TYPE='ADQM'
select \* from <имя логической базы из п.1>.all_types
DATASOURCE_TYPE='ADB'
Удалить таблицу со всеми типами колонок из Prostore с помощью SQL-запроса:
DROP TABLE <имя логической базы из п.1>.all_types
Удалить Витрину с помощью SQL-запроса:
DROP DATABASE <имя логической базы из п.1>.
Внимание
Наличие сообщений об ошибках, а также отличие получаемых состояний Prostore на различных этапах проверки от ожидаемых состояний является индикатором неуспешного прохождения проверки.
5.1.3. Проверка СМЭВ QL Сервера
5.1.3.1. Проверки и валидации
Валидации запускаются либо на все объекты данного типа (указать all), либо только на указанные, в том числе через запятую.
Доступность источников проверяется командой:
./smevql test source <all | source-name>
Валидность моделей проверяется командой:
./smevql test model <all | model-name>
5.1.4. Проверка СМЭВ3-адаптера
5.1.4.1. Проверка модуля
Для проверки модуля СМЭВ3-адаптер необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например:
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа:
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.1.5. Проверка DATA-Uploder – Модуля исполнения асинхронных заданий
5.1.5.1. Проверка модуля
Для проверки модуля DATA-Uploader необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например:
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа:
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.1.6. Проверка REST-Uploader – Модуля асинхронной загрузки данных из сторонних источников
5.1.6.1. Проверка модуля
Для проверки модуля REST-uploader необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например:
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа:
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.1.7. Проверка BLOB-адаптера
5.1.7.1. Проверка модуля
Для проверки модуля Blob-адаптер необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа:
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.1.8. Проверка Сервиса формирования документов
5.1.8.1. Проверка модуля
Для проверки модуля «Сервис Формирования документов» необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например:
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа:
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.1.9. Проверка ETL
5.1.9.1. Проверка статусной информации по загрузке / удалению данных (Endpoint – status)
В данном разделе производится проверка статусной информации из сервисных таблиц по requestId.
Пример запроса:
Curl -X GET "http://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/status/<requestId>" -H "Authorization: Bearer <access_token>"
где:
requestId— UUID идентификатор порции изменений (дельты).
Пример ответа на такой запрос представлен ниже.
{
"requestId": "13f2475e-f3dc-4c9e-b2f6-3a98320261f1",
"inDeltaFlag": false,
"dataSets": [
"stock"
],
"status": "ERROR",
"statusMessage": "Произошла ошибка",
"errors": [
{
"dataSet": "stock",
"errorType": "PARCING",
"message": "Неверно указан тип поля count_pieces: LONG. Ожидается: INTEGER"
},
{
"dataSet": "stock",
"errorType": "PARCING",
"message": "Неверно указан тип поля product_id: LONG. Ожидается: INTEGER"
}
]
}
где:
requestId— UUID идентификатор порции изменений (дельты);inDeltaFlag = false— загрузка несогласованных данных производилась через endpoint /data;dataSets— массив имен набора данных (имен таблиц где была допущена ошибка);status— статус код результата запроса (NOT_FOUND, PROCESSING, ERROR, SUCCESS);statusMessage— описание статусного сообщения;errors— массив, ошибки загрузки или парсинга входящих данных;dataSet— название таблицы где допущена ошибка;errorType— тип ошибки;message— описание ошибки.
5.1.9.2. Проверка Apache Airflow
Проверка сервиса Apache Airflow осуществляется через графический пользовательский интерфейс, в случае успешной установки,
он должен быть доступен по адресу http://localhost:8080.
Для авторизации используйте следующие данные:
логин:
airflow;пароль:
airflow.
Также, можно проверить удалённое подключение с помощью http-запроса, для этого выполните следующую команду
ENDPOINT_URL="http://localhost:8080/"
curl -X GET \\
--user "airflow:airflow" \\
"${ENDPOINT_URL}/api/v1/pools"
5.1.9.3. Проверка Apache Spark
Проверка сервиса Apache Spark осуществляется через графический пользовательский интерфейс, в случае успешной установки, он должен быть доступен по адресу:
Веб-сервер Spark Master доступен по адресу
http://<ваш ip-адрес>:8080 например http://localhost:8080/
Веб-сервер Spark Worker 1 доступен по адресу
http://<ваш ip-адрес>:8081 например http://localhost:8081/
5.1.9.4. Проверка Apache Hadoop
Проверить корректность работы Apache Hadoop можно командой:
make wordcount
или последовательно выполнить следующие команды:
docker build -t hadoop-wordcount ./submit
docker run --network docker-hadoop_default --env-file hadoop.env
bde2020/hadoop-base:master hdfs dfs -mkdir -p /input/
docker run --network docker-hadoop_default --env-file hadoop.env
bde2020/hadoop-base:master hdfs dfs -copyFromLocal -f
/opt/hadoop-3.2.1/README.txt /input/
docker run --network docker-hadoop_default --env-file hadoop.env
hadoop-wordcount
docker run --network docker-hadoop_default --env-file hadoop.env
bde2020/hadoop-base:master hdfs dfs -cat /output/\*
docker run --network docker-hadoop_default --env-file hadoop.env
bde2020/hadoop-base:master hdfs dfs -rm -r /output
docker run --network docker-hadoop_default --env-file hadoop.env
bde2020/hadoop-base:master hdfs dfs -rm -r /input
После запуска Apache Hadoop можно зайти в следующие WEB–интерфейсы:
Namenode:
http://<dockerhadoop_IP_address>:9870/dfshealth.html#tab-overview
History server: http://<dockerhadoop_IP_address>:8188/applicationhistory
Datanode: http://<dockerhadoop_IP_address>:9864/
Nodemanager: http://<dockerhadoop_IP_address>:8042/node
Resource manager: http://<dockerhadoop_IP_address>:8088/
5.1.9.5. Проверка Tarantool(Vinyl)
Проверка СУБД Tarantool осуществляется согласно документации на СУБД Tarantool: https://www.tarantool.io/en/doc/latest/book/monitoring/ .
5.1.10. Проверка Counter-provider - Сервиса генерации уникального номера
5.1.10.1. Проверка модуля
Для проверки модуля «Сервис генерации уникального номера» необходимо выполнить запрос к сервису:
curl -s IP:Port/metrics | grep '^liveness '
где,
IP- адрес сервера.Port- адрес сервера.liveness- параметр проверки работоспособности модуля.
Например
curl -s http://172.16.10.67:9837/metrics | grep '^liveness '
Пример успешного ответа
liveness 1.0
Ответ 1 означает корректную работу модуля.
5.2. Проверка Компонента «Витрина данных» конфигурации Лайт
Процесс установки Компонента описан в разделе Установка Компонента «Витрина данных» конфигурации лайт.
Для проверки установки Компонента следует выполнить следующие действия:
Открыть в браузере web-интерфейс Portainer для управления docker-контейнерами по адресу
IP:9000, где
IP- адрес сервера.9000- порт сервера.
Введите логин и пароль администратора Portainer. По умолчанию -
admin/LongPassword(см. Рисунок - 5.1).
Рисунок - 5.1 Авторизация в Portainer
Чтобы определить и автоматически настроить локальную среду нажмите значок Get Started (см. Рисунок - 5.2).
Рисунок - 5.2 Окно «Quick Setup»
На главной странице нажмите ссылку local (см. Рисунок - 5.3).
Рисунок - 5.3 Окно «Home»
Нажмите значок Containers (см. Рисунок - 5.4).
Рисунок - 5.4 Окно «Containers»
В разделе Container list сверьте наличие компонентов со списком компонентов дистрибутива Компонента, приведенных в Состав модулей в дистрибутиве документа «Техническое описание Компонента «Витрина данных»».
Подключитесь к Компоненту по SSH (например, через Putty). Выполните запрос, согласно приведенному примеру ниже.
Пример запроса
curl -X POST -H "Content-Type: application/json" -d '{"requestId": "797de19a-54e2-4c9c-af6e-a9ee312230b5","datamartMnemonic": "base01","sql": "CHECK_VERSIONS()"}' http://0.0.0.0:9090/query/execute
Пример успешного ответа (см. Рисунок - 5.5).
Рисунок - 5.5 Проверка подключения к базе данных Prostore
Подключитесь к Grafana.
Для этого следует перейти по адресу: http://<имя сервера>:3000 и выполнить авторизацию (указаны значения по умолчанию):
логин: admin;
пароль: admin.
Проверьте, что показатели Healthcheck Leaviness и Readiness (дашборд Lite) работают (индикатор зеленого цвета).
Просмотрите лог-файл установки (ansible/ansible.log). Лог-файл не должен содержать записей с ошибками установки.
6. Обновление Компонента
Внимание
Перед обновлением Компонента необходимо выполнить перенос системных данных (Серисной БД) из Zookeeper в Postgres-совместимые СУБД для обновления кластера Prostore с версии 6.* на версию 7.* согласно инструкции
6.1. Обновление Компонента «Витрина данных» конфигурации Стандарт
Для обновления версии Компонента «Витрина данных» нужно обновить файлы модулей, полученные в дистрибутиве новой версии Компонента.
Все настройки Компонента (адреса серверов, порты и т.д.) останутся без изменений.
6.2. Обновление Компонента «Витрина данных» конфигурации Лайт
Внимание
Перед началом обновления выполните резервное копирование!
6.2.1. Обновление с версии 1.0.0 до версии 1.0.1
Внимание
Данное обновление предусмотрено только для перехода с версии Компонента 1.0.0 до версии 1.0.1.
Чтобы обновить Компонент необходимо выполнить следующие действия (подробная инструкция по обновлению ниже):
Выполнить резервное копирование.
Скопировать архив с обновлением Компонента на сервер.
Распаковать архив с обновлением.
Запустить процесс обновления.
Проверить, что обновление прошло успешно.
6.2.1.1. Резервное копирование
Внимание
Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел datamart_user_lite).
Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования.
Например:
tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/
6.2.1.2. Копирование архива с обновлением Компонента на сервер
Для загрузки на сервер архива с файлами обновления Компонента используйте SFTP-клиент (например, WinSCP или Filezilla).
Для авторизации используйте логин и пароль учетной записи администратора datamart созданной при установке ОС (см. раздел datamart_user_lite).
Подключитесь по SSH к серверу (см. раздел ssh_connect), используя логин и пароль учетной записи администратора.
Загрузите файл с архивом в домашнюю директорию пользователя datamart командой:
mv ~/dtm-lite-1.0.1.tgz /home/datamart/
где,
dtm-lite-1.0.1.tgz- название архива Компонента.datamart- имя пользователя.
6.2.1.3. Распаковка архива с обновлением
Внимание
Перед тем как выполнить разархивирование рекомендуется просмотреть/скопировать значения переменных (IP-адрес сервера, префикс и т.д.), которые использовались в предыдущей версии Компонента в файле ansible/group_vars/all/main.yml. После распаковки архива с обновлением Компонента данные из этого файла будут удалены.
Чтобы распаковать архив, выполните команду:
tar -xzvf dtm-lite-1.0.1.tgz
6.2.1.4. Процесс обновления Компонента
Чтобы запустить процесс обновления Компонента с помощью Ansible, необходимо выполнить следующие действия:
1. Переименовать файл custom.example.yml расположенный в папке ansible/group_vars/ в custom.yml. Для этого выполните команду:
cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml
В файле
custom.ymlуказать корректные значения для следующих переменных:
server_ip- адреса сервера. Укажите IP-адрес сервера, на который будет установлено обновление Компонента. Например:
server_ip: "172.16.10.59"
server_user_name- имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым устанавливается обновление (см. раздел datamart_user_lite), например:
server_user_name: datamart
agentTopicPrefix- префикс перед именем топиков для СМЭВ4-агента (указывается опционально). Например:
agentTopicPrefix: "user_prefix."
Внимание
В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ . (точка)! Пример: agentTopicPrefix: "prod_vitrina98."
Чтобы запустить процесс обновления Компонента выполните команду:
docker-ansible-cmd ansible-playbook -i hosts install.yml
Начнется процесс обновления Компонента (см. рис. ниже):
Рисунок - 6.1 Обновление Компонента
Установка обновления завершена.
После завершения обновления необходимо убедиться, что обновление Компонента прошло успешно.
6.2.1.5. Проверка обновления Компонента до версии 1.0.1
Для проверки обновления Компонента необходимо выполнить следующие действия:
Убедиться, что после установки обновления нет ошибок в работе Компонента.
Убедиться, что параметр
failed(см. рис. выше) после установки обновления имеет значение -0. Это значит, что все необходимые компоненты Компонента были обновлены, а необходимые взаимосвязи между ними настроены корректно.Открыть Portainer и проверить, что версии модулей соответствуют указанным ниже:
csv-uploader:1.0.12 podd-adapter:5.0.7 query-execution:5.2.2
6.2.2. Обновление с версии 1.0.1 до версии выше
Чтобы обновить Компонента необходимо выполнить следующие действия:
Выполнить резервное копирование.
Скопировать архив с обновлением Компонента на сервер.
Распаковать архив с обновлением.
Запустить процесс обновления.
Проверить, что обновление прошло успешно.
6.2.2.1. Резервное копирование
Внимание
Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел datamart_user_lite).
Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования.
Например:
tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/
6.2.2.2. Копирование архива с обновлением Компонента на сервер
Для загрузки на сервер архива с файлами обновления Компонента используйте SFTP-клиент (например, WinSCP или Filezilla).
Для авторизации используйте логин и пароль учетной записи администратора datamart созданной при установке ОС (см. раздел datamart_user_lite).
Подключитесь по SSH к серверу (см. раздел ssh_connect), используя логин и пароль учетной записи администратора.
Загрузите файл с архивом в домашнюю директорию пользователя datamart командой:
mv ~/dtm-lite-<номер версии>.tgz /home/datamart/
где,
dtm-lite-<номер версии>.tgz- название архива Компонента.datamart- имя пользователя.
6.2.2.3. Распаковка архива с обновлением
Чтобы распаковать архив, выполните команду:
tar -xzvf dtm-lite-<номер версии>.tgz
6.2.2.4. Процесс обновления Компонента
Чтобы запустить процесс обновления Компонента с помощью Ansible, необходимо выполните команду:
docker-ansible-cmd ansible-playbook -i hosts install.yml
Начнется процесс обновления Компонента (см. рис. ниже):
Рисунок - 6.2 Обновление Компонента
Установка обновления завершена.
После завершения обновления необходимо убедиться, что обновление Компонента прошло успешно.
6.2.2.5. Проверка обновления Компонента
Для проверки обновления Компонента необходимо выполнить следующие действия:
Убедиться, что после установки обновления нет ошибок в работе Компонента.
Убедиться, что параметр
failed(см. рис. выше) после установки обновления имеет значение -0. Это значит, что все необходимые части Компонента были обновлены, а необходимые взаимосвязи между ними настроены корректно.Открыть Portainer и проверить, что версии компонентов соответствуют указанным модулям для конфигурации Лайт.