Установка программы =================== Установка витрины данных производится без необходимости доступа к сети «Интернет» для скачивания компонент. Порядок установки ----------------- 1. Проверить соответствие серверов техническим характеристикам (см. раздел "Настройка на состав технических средств"). 2. Выполнить предварительные действия перед установкой программы (см. раздел "Предварительные действия"). 3. Установить на серверы, в соответствующем порядке, следующее программное обеспечение: - Arenadata Cluster Manager (ADCM) - при условии использвания CentOS 7.9; - Arenadata Streaming (ADS) - при условии использвания CentOS 7.9; - коннектор Kafka-Postgres; - ProStore; - СМЭВ QL Сервер; - СМЭВ3-адаптер; - ПОДД-адаптера - Модуль исполнения запросов; - ПОДД-адаптер – Модуль MPPR; - ПОДД-адаптер – Модуль MPPW; - ПОДД-адаптер – Модуль импорта данных табличных параметров; - ПОДД-адаптер – Модуль группировки данных табличных параметров; - ПОДД-адаптер – ПОДД-адаптер – Wrapper; - Data-uploader – Модуль исполнения асинхронных заданий; - REST-uploader – Модуль асинхронной загрузки данных из сторонних источников; - ПОДД-адаптер – Модуль подписки; - BLOB-адаптер; - Сервис формирования документов; - ETL; - CSV-uploader; - REST-адаптер; - Counter-provider. 4. Проверить работу всех компонентов программы (см. раздел "Проверка программы"). Версии компонентов Типового ПО "Витрина данных" конфигурации Стандарт представлены в таблице ниже (см :numref:`modules_version`) .. _modules_version: .. table:: Версии компонентов Типового ПО "Витрина данных" конфигурации Стандарт ======================== ========== =============================== Наименование компонента Версия Техническое наименование ======================== ========== =============================== ПОДД Агент 3.11.0 ПОДД-Агент:3.11.0 СМЭВ3-адаптер 1.13.0 smev3-adapter:1.13.0 printable-form-service 1.13.0 printable-form-service:1.13.0 rest-adapter 1.13.0 rest-adapter:1.13.0 rest-uploader 1.13.0 rest-uploader:1.13.0 data-uploader 1.13.0 data-uploader:1.13.0 blob-adapter 1.13.0 blob-adapter:1.13.0 podd-adapter-query 1.13.0 podd-adapter-query:1.13.0 podd-adapter-replicator 1.13.0 podd-adapter-replicator:1.13.0 podd-adapter-group-repl 1.13.0 podd-adapter-group-repl:1.13.0 podd-adapter-mppr 1.13.0 podd-adapter-mppr:1.13.0 podd-adapter-mppw 1.13.0 podd-adapter-mppw:1.13.0 podd-adapter-group-tp 1.13.0 podd-adapter-group-tp:1.13.0 podd-adapter-import-tp 1.13.0 podd-adapter-import-tp:1.13.0 podd-avro-defragmentator 1.13.0 podd-avro-defragmentator:1.13.0 smevql-server 1.13.0 smevql-server:1.13.0 csv-uploader 1.13.0 csv-uploader:1.13.0 counter-provider 1.13.0 counter-provider:1.13.0 backup-manager 1.13.0 backup-manager:1.13.0 query-execution 6.7.0 query-execution:6.7.0 kafka 2.6.0 kafka:2.6.0 zookeeper 3.5.7 zookeeper:3.5.7 redis 7.0.11 redis:7.0.11 fdw 0.10.2 fdw:0.10.2 pxf 1.0 pxf:1.0 ======================== ========== =============================== Установка ПО ProStore --------------------- Установка ProStore должна осуществляться после установки СУБД и брокера сообщений. ПО ProStore поставляется в виде дистрибутива с компонентами в jar-файлах. Процесс установки состоит из следующих действий: - запуск службы Prostore-query-execution-core. Запуск службы Prostore-query-execution-core ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Создать на сервере директорию для загрузки дистрибутива. 2. Загрузить файлы дистрибутива в созданную директорию. 3. Настроить конфигурационный файл Prostore `application.yaml`. 4. Запустить jar-файлы со значением номера порта, указанным в конфигурации Prostore (по умолчанию — 8080): .. code-block:: bash # запуск файла dtm-query-execution-core-.jar (например, dtm-query-execution-core-5.8.0.jar) cd ~/prostore/dtm-query-execution-core/target java -jar dtm-query-execution-core-.jar .. note:: Чтобы запустить ProStore с другим номером порта, задайте нужное значение с помощью параметра `server:port` в конфигурации Prostore или с помощью переменной окружения DTM_METRICS_PORT. Подробнее о параметрах конфигурации и способах их переопределения см. в разделе `Конфигурация системы `_. 5. Проверить корректность функционирования ProStore. Конфигурационный файл Prostore `application.yaml` .. code-block:: yaml # # Copyright © 2021 ProStore # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # logging: level: ru.datamart.prostore.query.execution: ${DTM_LOGGING_LEVEL:TRACE} server: port: ${DTM_METRICS_PORT:8080} management: endpoints: enabled-by-default: ${DTM_METRICS_ENABLED:true} web: exposure: include: ${DTM_METRICS_SCOPE:info, health} core: plugins: active: ${CORE_PLUGINS_ACTIVE:ADP} http: port: ${DTM_CORE_HTTP_PORT:9090} tcpNoDelay: ${DTM_CORE_HTTP_TCP_NO_DELAY:true} tcpFastOpen: ${DTM_CORE_HTTP_TCP_FAST_OPEN:true} tcpQuickAck: ${DTM_CORE_HTTP_TCP_QUICK_ACK:true} env: name: ${DTM_NAME:test} restoration: autoRestoreState: ${AUTO_RESTORE_STATE:true} matviewsync: periodMs: ${MATERIALIZED_VIEWS_SYNC_PERIOD_MS:5000} retryCount: ${MATERIALIZED_VIEWS_RETRY_COUNT:10} maxConcurrent: ${MATERIALIZED_VIEWS_CONCURRENT:2} ddlqueue: enabled: ${CORE_DDL_QUEUE_ENABLED:true} datasource: edml: defaultChunkSize: ${EDML_DEFAULT_CHUNK_SIZE:1000} pluginStatusCheckPeriodMs: ${EDML_STATUS_CHECK_PERIOD_MS:1000} firstOffsetTimeoutMs: ${EDML_FIRST_OFFSET_TIMEOUT_MS:15000} changeOffsetTimeoutMs: ${EDML_CHANGE_OFFSET_TIMEOUT_MS:10000} zookeeper: connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost} connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000} session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000} chroot: ${ZOOKEEPER_DS_CHROOT:/adtm} kafka: producer: property: key.serializer: org.apache.kafka.common.serialization.StringSerializer value.serializer: org.apache.kafka.common.serialization.StringSerializer cluster: zookeeper: connection-string: ${ZOOKEEPER_KAFKA_ADDRESS:localhost} connection-timeout-ms: ${ZOOKEEPER_KAFKA_CONNECTION_TIMEOUT_MS:30000} session-timeout-ms: ${ZOOKEEPER_KAFKA_SESSION_TIMEOUT_MS:86400000} chroot: ${ZOOKEEPER_KAFKA_CHROOT:} admin: inputStreamTimeoutMs: ${KAFKA_INPUT_STREAM_TIMEOUT_MS:2000} status.event.publish: enabled: ${KAFKA_STATUS_EVENT_ENABLED:false} statusMonitor: statusUrl: ${STATUS_MONITOR_URL:http://localhost:9095/status} versionUrl: ${STATUS_MONITOR_VERSION_URL:http://localhost:9095/versions} vertx: blocking-stacktrace-time: ${DTM_VERTX_BLOCKING_STACKTRACE_TIME:1} pool: worker-pool: ${DTM_CORE_WORKER_POOL_SIZE:20} event-loop-pool: ${DTM_CORE_EVENT_LOOP_POOL_SIZE:20} task-pool: ${DTM_CORE_TASK_POOL_SIZE:20} task-timeout: ${DTM_CORE_TASK_TIMEOUT:86400000} cache: initialCapacity: ${CACHE_INITIAL_CAPACITY:100000} maximumSize: ${CACHE_MAXIMUM_SIZE:100000} expireAfterAccessMinutes: ${CACHE_EXPIRE_AFTER_ACCESS_MINUTES:99960} delta: rollback-status-calls-ms: ${DELTA_ROLLBACK_STATUS_CALLS_MS:2000} statistics: enabled: ${CORE_STATISTICS_ENABLED:true} threadsCount: ${CORE_STATISTICS_THREADS_COUNT:2} adp: datasource: user: ${ADP_USERNAME:dtm} password: ${ADP_PASS:dtm} host: ${ADP_HOST:localhost} port: ${ADP_PORT:5432} poolSize: ${ADP_MAX_POOL_SIZE:3} executorsCount: ${ADP_EXECUTORS_COUNT:3} fetchSize: ${ADP_FETCH_SIZE:1000} poolRequestTimeout: ${ADP_POOL_REQUEST_TIMEOUT:0} preparedStatementsCacheMaxSize: ${ADP_PREPARED_CACHE_MAX_SIZE:256} preparedStatementsCacheSqlLimit: ${ADP_PREPARED_CACHE_SQL_LIMIT:2048} preparedStatementsCache: ${ADP_PREPARED_CACHE:true} mppw: restStartLoadUrl: ${ADP_REST_START_LOAD_URL:http://localhost:8096/newdata/start} restStopLoadUrl: ${ADP_REST_STOP_LOAD_URL:http://localhost:8096/newdata/stop} restVersionUrl: ${ADP_MPPW_CONNECTOR_VERSION_URL:http://localhost:8096/versions} kafkaConsumerGroup: ${ADP_KAFKA_CONSUMER_GROUP:adp-load} mppr: restLoadUrl: ${ADP_MPPR_QUERY_URL:http://localhost:8094/query} restVersionUrl: ${ADP_MPPR_CONNECTOR_VERSION_URL:http://localhost:8094/versions} Установка СМЭВ QL Сервера ------------------------- .. Установка СМЭВ QL Сервера .. Подключаем файл с установкой СМЭВ QL Сервера .. include:: ../../modules/smev-ql/doc/smev_ql_install.rst Установка СМЭВ3-адаптера ------------------------ Описание настроек модуля приведено в "Руководстве администратора". .. Установка СМЭВ-адаптер .. Подключаем файл с установкой СМЭВ-адаптер .. include:: ../../modules/smev3-adapter/doc/smev3_adapter_install.rst Установка ПОДД-адаптера - Модуль исполнения запросов ---------------------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер - Модуль исполнения запросов .. Подключаем файл с установкой ПОДД-адаптер - Модуль исполнения запросов .. include:: ../../modules/podd-adapter-query/doc/podd_adapter_query_install.rst Установка ПОДД-адаптер – Модуль MPPR ------------------------------------ Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер – Модуль MPPR .. Подключаем файл с установкой ПОДД-адаптер – Модуль MPPR .. include:: ../../modules/podd-adapter-mppr/doc/podd_adapter_mppr_install.rst Установка ПОДД-адаптер-Модуль MPPW ---------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер-Модуль MPPW .. Подключаем файл с установкой ПОДД-адаптер-Модуль MPPW .. include:: ../../modules/podd-adapter-mppw/doc/podd_adapter_mppw_install.rst Установка ПОДД-адаптер – Модуль импорта данных табличных параметров ------------------------------------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер – Модуль импорта данных табличных параметров .. Подключаем файл с установкой ПОДД-адаптер – Модуль импорта данных табличных параметров .. include:: ../../modules/podd-adapter-import-tp/doc/podd_adapter_import_tp_install.rst Установка ПОДД-адаптер – Модуль группировки данных табличных параметров ----------------------------------------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер – Модуль группировки данных табличных параметров .. Подключаем файл с установкой ПОДД-адаптер – Модуль группировки данных табличных параметров .. include:: ../../modules/podd-adapter-import-tp/doc/podd_adapter_import_tp_install.rst Установка ПОДД-адаптер – Wrapper -------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер – Wrapper .. Подключаем файл с установкой ПОДД-адаптер – Wrapper .. include:: ../../modules/podd-avro-defragmentator/doc/podd_avro_defragmentator_install.rst Установка модуля группировки чанков репликации ------------------------------------------------- .. Описание модуля .. Подключаем файл с описанием модуля .. include:: ../../modules/podd-adapter-group-repl/doc/podd_adapter_group_repl_install.rst Установка DATA-uploder – Модуль исполнения асинхронных заданий -------------------------------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка Data-uploder – Модуль исполнения асинхронных заданий .. Подключаем файл с установкой Data-uploder – Модуль исполнения асинхронных заданий .. include:: ../../modules/data-uploader/doc/data_uploader_install.rst Установка REST-uploader – Модуль асинхронной загрузки данных из сторонних источников ------------------------------------------------------------------------------------ Описание настроек модуля приведено в "Руководстве администратора". .. Установка REST-uploader – Модуль асинхронной загрузки данных из сторонних источников .. Подключаем REST-uploader – Модуль асинхронной загрузки данных из сторонних источников .. include:: ../../modules/rest-uploader/doc/rest_uploader_install.rst Установка ПОДД-адаптер – Модуль подписки ---------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка ПОДД-адаптер – Модуль подписки .. Подключаем файл с установкой ПОДД-адаптер – Модуль подписки .. include:: ../../modules/podd-adapter-replicator/doc/podd_adapter_replicator_install.rst Установка BLOB-адаптер ---------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка BLOB-адаптер .. Подключаем файл с установкой BLOB-адаптер .. include:: ../../modules/blob-adapter/doc/blob_adapter_install.rst Установка Сервиса формирования документов ----------------------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка Сервис формирования документов .. Подключаем файл с установкой Сервис формирования документов .. include:: ../../modules/printable-form-service/doc/printable_form_service_install.rst Загрузка и удаление данных через ETL ------------------------------------- .. Инструкция по загрузке и удалению данных через ETL Общее описание ~~~~~~~~~~~~~~~~~~ .. Подключаем файл с описанием .. include:: ../../modules/etl/doc/etl_doc.rst Особенности реализации ~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с требованиями к исходникам, особенностями реализации и получением токена proxy api .. include:: ../../modules/etl/doc/etl_config.rst Загрузка / удаление данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с загрузками / удалением данных .. include:: ../../modules/etl/doc/etl_load.rst Проверка статусной информации по загрузке ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с проверкой статусной информацией .. include:: ../../modules/etl/doc/etl_check.rst Работа с вложениями через S3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Подключаем файл с работой с вложениями через S3 .. include:: ../../modules/etl/doc/etl_attach.rst Маппинг данных ~~~~~~~~~~~~~~~ .. Подключаем файл с маппингом данных .. include:: ../../modules/etl/doc/etl_mapping.rst Валидация данных ~~~~~~~~~~~~~~~~~ .. Подключаем файл с валидацией данных .. include:: ../../modules/etl/doc/etl_validation.rst Установка Apache Airflow ~~~~~~~~~~~~~~~~~~~~~~~~ Подготовка конфигурации """"""""""""""""""""""" 1. Клонировать репозиторий Apache Airflow из официального репозитория:: git clone https://github.com/apache/airflow.git 2. Перейти в папку **airflow** 3. Создать в папке файл ``Dockerfile.custom`` со следующим содержимым:: FROM ${BASE_AIRFLOW_IMAGE} SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] USER 0 # Install Java RUN mkdir -pv /usr/share/man/man1 \\ && mkdir -pv /usr/share/man/man7 \\ && curl -fsSL https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public \| apt-key add - \\ && echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > \\ /etc/apt/sources.list.d/adoptopenjdk.list \\ && apt-get update \\ && apt-get install --no-install-recommends -y \\ adoptopenjdk-8-hotspot-jre \\ && apt-get autoremove -yqq --purge \\ && apt-get clean \\ && rm -rf /var/lib/apt/lists/\* # Установка JDR 1.8 ENV JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-jre-amd64 USER ${AIRFLOW_UID} # Установка компонента apache.spark RUN pip install --upgrade pip \\ && pip install --no-cache-dir --user 'apache-airflow[apache.spark]' Установка Apache Airflow """""""""""""""""""""""" Установка Apache Airflow выполняется с помощью *Docker*. Установка *Docker* описана в разделе "Установка Arenadata Cluster Manager (ADCM)" :ref:`install_adcm`. 1. Создайте новый образ в *Docker*, в той же директории, где расположен файл ``Dockerfile.custom``. Пример: :: docker build . \\ --build-arg BASE_AIRFLOW_IMAGE="apache/airflow:2.0.1-python3.8" \\ -f Dockerfile.java8 \\ -t airflow:2.0.1-python3.8-custom 2. Скачать файл ``docker-compose.yaml`` с официального сайта Airflow https://Airflow.apache.org/docs/apache-airflow/2.0.1/docker-compose.yaml 3. Установить ``docker-compose.yaml`` через SSH-консоль технологического пользователя. - Выдать права на исполнение файла:: sudo chmod +x /usr/local/bin/docker-compose - Запустить sudo:: ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose - Проверить корректность установки:: $ docker-compose --version docker-compose version 1.28.6, build 1110ad01 4. Перейти в директорию с файлом ``docker-compose.yml`` Например: cd ~/direct 5. Инициализировать компоненты:: docker-compose up airflow-init 6. Запустить сервисы с новым образом:: docker-compose up AIRFLOW_IMAGE_NAME=apache/airflow:2.0.1-python3.8-custom Установка Apache Spark ~~~~~~~~~~~~~~~~~~~~~~ Установка *Docker* описана в разделе "Установка Arenadata Cluster Manager (ADCM)". Подготовка конфигурации """"""""""""""""""""""" 1. Клонировать репозиторий Apache Airflow из официального репозитория :: git clone https://github.com/big-data-europe/docker-spark.git 2. Перейти в директорию docker-spark Пример:: cd ~/direct 3. Выполнить скрипт ./build.sh или вручную последовательно запустить следующие команды: - сборка базового образа :: docker build -t bde2020/spark-base:3.1.1-hadoop3.2 - сборка образа мастер :: docker build -t bde2020/spark-master:3.1.1-hadoop3.2 - сборка образа воркера :: docker build -t bde2020/spark-worker:3.1.1-hadoop3.2 4. Проверить наличие собранных образов: Выполнить команду docker images: :: REPOSITORY TAG IMAGE ID CREATED SIZE bde2020/spark-worker 3.1.1-hadoop3.2 05c349b4646f 4 minutes ago 460MB bde2020/spark-master 3.1.1-hadoop3.2 7918c5357d6d 4 minutes ago 460MB bde2020/spark-base 3.1.1-hadoop3.2 5430434220d2 4 minutes ago 460MB Установка """"""""" 1. Перейти в директорию *docker-spark*, где располагается файл ``docker-compose.yml`` Пример:: cd ~/direct 2. Запустить Apache Spark командой: :: docker-compose up 3. Проверить командой: :: docker ps В списке запущенных образов должны присутствовать ``spark-worker`` и ``spark-master``. Установка Apache Hadoop ~~~~~~~~~~~~~~~~~~~~~~~ Установка *Docker* описана в разделе "Установка Arenadata Cluster Manager (ADCM)". Подготовка конфигурации """"""""""""""""""""""" 1. Клонировать репозиторий Apache Hadoop из официального репозитория:: git clone https://github.com/big-data-europe/docker-hadoop.git Перейти в папку **docker-hadoop** Например:: cd ~/direct 2. Выполнить скрипт ``make build`` или вручную последовательно запустить следующие команды: - сборка базового образа:: docker build -t bde2020/hadoop-base:master ./base - сборка остальных образов:: docker build -t bde2020/hadoop-namenode:master ./namenode docker build -t bde2020/hadoop-datanode:master ./datanode docker build -t bde2020/hadoop-resourcemanager:master ./resourcemanager docker build -t bde2020/hadoop-nodemanager:master ./nodemanager docker build -t bde2020/hadoop-historyserver:master ./historyserver docker build -t bde2020/hadoop-submit:master ./submit 3. Проверить наличие собранных образов: Выполнить команду docker images:: REPOSITORY TAG IMAGE ID CREATED SIZE bde2020/hadoop-submit master 665a424edc23 9 minutes ago 1.37GB bde2020/hadoop-historyserver master ff53bf6835e2 9 minutes ago 1.37GB bde2020/hadoop-nodemanager master c48c47bc840f 9 minutes ago 1.37GB bde2020/hadoop-resourcemanager master 74fc55d664d2 9 minutes ago 1.37GB bde2020/hadoop-datanode master f69c6460a292 9 minutes ago 1.37GB bde2020/hadoop-namenode master 7a8250da8510 9 minutes ago 1.37GB bde2020/hadoop-base master aeb6500ab4b5 10 minutes ago 1.37GB Процесс установки """"""""""""""""" 1. Перейти в директорию **docker-hadoop**, где располагается файл ``docker-compose.yml`` Например:: cd ~/direct 2. Поднять Apache Hadoop командой:: docker-compose up 3. Проверить командой:: docker ps В списке запущенных образов должны присутствовать ``hadoop-resourcemanager``, ``hadoop-historyserver``, ``hadoop-datanode``, ``hadoop-nodemanager``, ``hadoop-namenode`` Установка Tarantool(Vinyl) ~~~~~~~~~~~~~~~~~~~~~~~~~~ Установка docker описана в разделе 3.3.2. Установка Менеджера кластера ADCM. Подготовка конфигурации """"""""""""""""""""""" 1. Клонировать репозиторий Tarantool из официального репозитория:: git clone https://github.com/tarantool/docker.git 2. Выполнить сборку согласно инструкции: https://github.com/tarantool/docker#how-to-push-an-image-for-maintainers 3. Перейти в клонированную директорию *docker* Например:: cd ~/direct 4. Выполнить сборку образа *docker* для Tarantool .. code-block:: bash export TAG=2 export OS=alpine DIST=3.9 VER=2.8.0 PORT=5200 make -f .gitlab.mk build 5. Проверить наличие собранных образов командой docker images .. code-block:: bash REPOSITORY TAG IMAGE ID CREATED SIZE tarantool/tarantool 2 27f80564ecce 2 minutes ago 298MB 6. Создать в клонированной директории *docker* файл ``docker-compose.yml`` со следующим содержимым:: .. code-block:: yaml version: "3" services: tarantool1: image: tarantool/tarantool:2 container_name: tarantool1 restart: always networks: - tarantool_network ports: - "3301:3301" volumes: - tarantool1_volume:/opt/tarantool environment: # https://github.com/tarantool/docker#environment-variables TARANTOOL_REPLICATION: "tarantool1,tarantool2" tarantool2: image: tarantool/tarantool:2 container_name: tarantool2 restart: always networks: - tarantool_network ports: - "3302:3301" volumes: - tarantool2_volume:/opt/tarantool environment: TARANTOOL_REPLICATION: "tarantool1,tarantool2" volumes: tarantool1_volume: tarantool2_volume: networks: tarantool_network: driver: bridge Процесс установки """"""""""""""""" 1. Перейти в директорию *docker*, где располагается файл ``docker-compose.yml`` Например: cd ~/direct 2. Пример запуска мастер-мастер репликации: https://github.com/tarantool/docker#start-a-master-master-replica-set 3. Поднять Tarantool командой:: docker-compose up 4. Проверить командой:: docker ps В списке запущенных образов должны присутствовать ``tarantool1`` и ``tarantool2`` Установка CSV-Uploader ---------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка CSV-uploader .. Подключаем файл с установкой CSV-uploader .. include:: ../../modules/csv-uploader/doc/csv_uploader_install.rst Установка REST-адаптера ----------------------- Установка сервисов и необходимых сервисных баз данных. .. attention:: Установка данных сервисов выполняется после установки «Core Services». Действия по установке выполняются на сервере ADCM через SSH-консоль технологического пользователя. Установка docker-образов ~~~~~~~~~~~~~~~~~~~~~~~~ Установка *Docker* описана в разделе "Установка Arenadata Cluster Manager (ADCM)" :ref:`install_adcm`. Установить образ REST-адаптера, при этом файл образа ``.tar`` должен быть загружен через *Docker* из дистрибутива программы. Пример команды для установки:: docker image load -i Подготовка конфигурации ~~~~~~~~~~~~~~~~~~~~~~~ Для подготовки скриптов необходимо выполнить следующие действия: 1. Отредактировать переменные в файле ``application.yml`` для рабочей среды. Файл необходимо поместить в директорию **config**: - Указать корректный путь до целевой БД. Переменная ``jdbc_url``. Например:: jdbc:{drv_name}://{IP_Host}:{Port}/{db_name} , где: - ``drv_name`` - имя драйвера , берется из описания драйвера базы - ``IP_Host`` - ip или имя хоста с базой; - ``Port`` - порт, на котором будет слушать сервис . По умолчанию 8080; - ``db_name`` - имя базы данных. - Указать ``driver-class-name`` - имя класса , берется из описания драйвера базы - Указать переменную ``file_path`` - наименование файла с описанием запросов, по умолчанию ``sample.yaml``. - Указать переменные ``execquery`` - сопоставление operationId из файла с описанием запросов c файлом обработчиком, по умолчанию ``sample.peb``. Процесс установки ~~~~~~~~~~~~~~~~~ Для установки необходимо выполнить следующие действия: 1. Перейти в директорию с файлом ``docker-compose.yml`` Например:: cd ~/direct 2. Поднять сервис конечных точек командой:: docker-compose up -d 3. Проверить установку следующей командой:: docker ps В списке запущенных образов должен присутствовать ``rest-adapter`` Установка Counter-provider -------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка Counter-provider .. Подключаем файл с установкой Counter-provider .. include:: ../../modules/counter-provider/doc/counter_provider_install.rst Установка коннектора 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. Скопировать конфигурационные файлы KAFKA-POSTGRES-WRITER `application.yaml` и KAFKA-POSTGRES-READER `application.yaml` в папку *kafka-postgres-connector/config* Конфигурационный файл KAFKA-POSTGRES-WRITER `application.yaml`: .. code-block:: 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`: .. code-block:: 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 .. _install_adcm: Установка Arenadata Cluster Manager (ADCM) ------------------------------------------ .. attention:: При условии установки CentOS 7.9 *Arenadata Cluster Manager (ADCM)* – сервер, с которого будет централизованно производиться установка почти всех компонентов программы. Данный компонент обязателен для установки. *Arenadata Cluster Manager (ADCM)* поставляется в docker-контейнерах, поэтому чтобы установить ADCM на сервере должен быть установлен *Docker* или совместимое программное обеспечение для работы с контейнерами. Текущая версия программного обеспечения несовместима с SELinux. Подробная инструкция по установке Arenadata Cluster Manager (ADCM) приведена в официальной документации разработчика (https://docs.arenadata.io/adcm/user/install.html ). Установка Arenadata Cluster Manager (ADCM) осуществляется пользователем согласно следующим этапам: 1. Выключить ``selinux``. Для этого в файле ``/etc/selinux/config`` установите значение ``SELINUX=disabled`` и перезапустить сервер командой ``reboot now``. 2. Установите *Docker* для этого используйте следующие команды:: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y containerd.io yum install -y docker-ce-3:18.09.1-3.el7 systemctl enable docker systemctl start docker 3. Установить ADCM в *Docker*. Для этого используйте следующие команды:: docker pull arenadata/adcm:latest docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data arenadata/adcm:latest 4. Запустите ADCM командой:: docker start adcm 5. Убедитесь, что ADCM установлен корректно, для этого перейдите в браузере по адресу http: // . В случае корректной установки откроется окно "Авторизация" (см. :numref:`image1` ). .. _image1: .. figure:: img/image1_ig.png :align: center :alt: Окно "Авторизация" Окно "Авторизация" Для авторизации используйте следующие данные: - пользователь - ``admin``; - пароль - ``admin``. После завершения процедуры авторизации откроется главное окно программы Arenadata Cluster Manager (см. :numref:`image2`). .. _image2: .. figure:: img/image2_ig.png :align: center :alt: Главное окно программы "Arenadata Cluster Manager" Главное окно программы "Arenadata Cluster Manager" Установка Arenadata Streaming (ADS) ----------------------------------- .. attention:: При условии установки CentOS 7.9 Arenadata Streaming (ADS) устанавливается на кластере с помощью ADCM из загруженного установочного пакета (бандла). Скачать установочный пакет (версия: ``ads_v1.6.0.0-1``) можно с сайта разработчика: https://store.arenadata.io/#products/arenadata_streaming. Подробная инструкция по установке Arenadata Streaming (ADS) приведена в официальной документации разработчика (`https://docs.arenadata.io/DTM/Install/ADS.html `__ , https://docs.arenadata.io/ads/Install/index.html ). В данной инструкции описывается установка кластера Kafka и импорт уже установленного кластера *Zookeeper*. Установка *Zookeeper* на кластер приведена в инструкции по установке ADQM. 1. Для создания кластера необходимо иметь предварительно загруженный бандл (версия: ads_v1.6.0.0-1). В графическом интерфейсе ADCM перейти в раздел *CLUSTERS -> Create cluster*. Создать кластер (см. :numref:`image_6`). .. _image_6: .. figure:: img/image6_ig.png :align: center :alt: Создание кластера ADS через графический интерфейс ADCM Создание кластера ADS через графический интерфейс ADCM 1. В разделе **Services** графического интерфейса ADCM необходимо добавить сервисы в созданный кластер (см. :numref:`image7`). Версии сервисов могут отличаться от указанных на рисунке. .. _image7: .. figure:: img/image7_ig.png :align: center :alt: Добавление через графический интерфейс ADCM сервисов в созданный кластер Добавление через графический интерфейс ADCM сервисов в созданный кластер 3. В случае, если *Kafka* и *Zookeeper* разворачивается в одном кластере, необходимо добавить сервис *Zookeeper*. 4. В разделе *Hosts* графического интерфейса ADCM указать серверы созданного кластера, на которых будет развёрнуто ПО Arenadata Streaming (ADS) (см. :numref:`image8`). .. _image8: .. figure:: img/image8_ig.png :align: center :alt: Выбор через графический интерфейс ADCM серверов для развёртывания кластера ADS Выбор через графический интерфейс ADCM серверов для развёртывания кластера ADS 5. В разделе *Hosts - Components* указать три узла (ноды) *Kafka* (см :numref:`image9`). .. _image9: .. figure:: img/image9_ig.png :align: center :alt: Выбор через графический интерфейс ADCM узлов Kafka Выбор через графический интерфейс ADCM узлов Kafka 6. Указать кластер *Zookeeper* в разделе **Import**, в случае если *Zookeeper* находится на другом кластере (см :numref:`image10`). .. _image10: .. figure:: img/image10_ig.png :align: center :alt: Выбор через графический интерфейс ADCM кластера *Zookeeper* для импорта Выбор через графический интерфейс ADCM кластера *Zookeeper* для импорта 7. Нажмите кнопку **InstalL**, чтобы запустить процесс установки. В окне "Дополнительные параметры" нажмите кнопку **Run**, чтобы выполнить установку (см :numref:`image11`). .. _image11: .. figure:: img/image11_ig.png :align: center :alt: Запуск через графический интерфейс ADCM процесса установки Запуск через графический интерфейс ADCM процесса установки 8. Проверьте, что установка завершена, для этого: - Проверьте лог-файлы *Zookeeper* по относительному пути :: /var/log/zookeeper/. - Проверьте лог-файл *Kafka* по относительному пути :: /var/log/kafka/. - Проверьте настройки подключения к кластеру *Zookeeper* с помощью сторонней утилиты *KafkaTool* (см :numref:`image12`). - Проверьте корректность разрешения имен серверов для автоматического определения bootstrap-серверов *Kafka*. При отсутствии DNS-севера добавьте в локальный ``hosts`` адреса Kafka. - Определите путь ``chroot path``, для этого выполните на любом сервере *Zookeeper* команду:: /usr/lib/zookeeper/bin/zkCli.sh Далее, выполните команду:: ls /arenadata/cluster. .. _image12: .. figure:: img/image12_ig.png :align: center :alt: Проверка через графический интерфейс ADCM настроек подключения к кластеру Zookeeper Проверка через графический интерфейс ADCM настроек подключения к кластеру Zookeeper При проверке, в данном руководстве, использовался графический интерфейс приложения Offset Explorer 2.1 (https://www.kafkatool.com/download.html).