Установка программы =================== Установка витрины данных производится без необходимости доступа к сети Интернет для скачивания компонент. Порядок установки ----------------- 1. Проверить соответствие серверов техническим характеристикам (см. раздел :ref:`server_requirements`). 2. Выполнить предварительные действия перед установкой программы (см. раздел :ref:`preactions`). 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. Проверить работу всех компонентов программы (см. раздел :ref:`system_check`). Версии компонентов программы приведены в разделе «Состав компонентов в дистрибутиве» документа «Техническое описание программы ПО «Витрина данных НСУД»». .. note:: Описание настроек модулей приведено в Руководстве администратора ПО «Витрина данных НСУД». Установка ПО ProStore --------------------- Установка ProStore должна осуществляться после установки СУБД и брокера сообщений. ПО ProStore поставляется в виде дистрибутива с компонентами в jar-файлах. Процесс установки состоит из следующих действий приведен в разделе `Сборка и развертывание `_ документации **Prostore**. Установка СМЭВ 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-group-tp/doc/podd_adapter_group_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 из официального репозитория .. code-block:: bash git clone https://github.com/apache/airflow.git 2. Перейти в папку **airflow** 3. Создать в папке файл ``Dockerfile.custom`` со следующим содержимым .. code-block:: bash 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** описана в разделе :ref:`install_adcm`. 1. Создайте новый образ в *Docker*, в той же директории, где расположен файл ``Dockerfile.custom``: .. code-block:: bash 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-консоль технологического пользователя. - Выдать права на исполнение файла .. code-block:: bash sudo chmod +x /usr/local/bin/docker-compose - Запустить sudo .. code-block:: bash ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose - Проверить корректность установки .. code-block:: bash $ docker-compose --version docker-compose version 1.28.6, build 1110ad01 1. Перейти в директорию с файлом ``docker-compose.yml``: .. code-block:: bash cd ~/direct 5. Инициализировать компоненты .. code-block:: bash docker-compose up airflow-init 6. Запустить сервисы с новым образом .. code-block:: bash docker-compose up AIRFLOW_IMAGE_NAME=apache/airflow:2.0.1-python3.8-custom Установка Apache Spark ------------------------ Установка **Docker** описана в разделе :ref:`install_adcm`. Подготовка конфигурации ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Клонировать репозиторий **Apache Airflow** из официального репозитория: .. code-block:: bash git clone https://github.com/big-data-europe/docker-spark.git 2. Перейти в директорию ``docker-spark``: .. code-block:: bash cd ~/direct 3. Выполнить скрипт ``./build.sh`` или вручную последовательно запустить следующие команды - сборка базового образа .. code-block:: bash docker build -t bde2020/spark-base:3.1.1-hadoop3.2 - сборка образа мастер .. code-block:: bash docker build -t bde2020/spark-master:3.1.1-hadoop3.2 - сборка образа воркера .. code-block:: bash docker build -t bde2020/spark-worker:3.1.1-hadoop3.2 4. Проверить наличие собранных образов, выполнив команду docker: .. code-block:: bash 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``: .. code-block:: bash cd ~/direct 2. Запустить Apache Spark командой: .. code-block:: bash docker-compose up 3. Проверить командой: .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``spark-worker`` и ``spark-master``. Установка Apache Hadoop -------------------------- Установка **Docker** описана в разделе :ref:`install_adcm`. Подготовка конфигурации ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Клонировать репозиторий **Apache Hadoop** из официального репозитория .. code-block:: bash git clone https://github.com/big-data-europe/docker-hadoop.git Перейти в папку **docker-hadoop** .. code-block:: bash cd ~/direct 2. Выполнить скрипт ``make build`` или вручную последовательно запустить следующие команды: - сборка базового образа .. code-block:: bash docker build -t bde2020/hadoop-base:master ./base - сборка остальных образов .. code-block:: bash 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: .. code-block:: bash 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`` .. code-block:: bash cd ~/direct 2. Поднять Apache Hadoop командой .. code-block:: bash docker-compose up 3. Проверить командой .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``hadoop-resourcemanager``, ``hadoop-historyserver``, ``hadoop-datanode``, ``hadoop-nodemanager``, ``hadoop-namenode``. Установка Tarantool (Vinyl) ------------------------------ Установка **Docker** описана в разделе ":ref:`install_adcm`. Подготовка конфигурации ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Клонировать репозиторий Tarantool из официального репозитория .. code-block:: bash git clone https://github.com/tarantool/docker.git 2. Выполнить сборку согласно инструкции: https://github.com/tarantool/docker#how-to-push-an-image-for-maintainers 3. Перейти в клонированную директорию **docker** .. code-block:: bash 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`` .. code-block:: bash cd ~/direct 2. Пример запуска мастер-мастер репликации: .. code-block:: bash https://github.com/tarantool/docker#start-a-master-master-replica-set 1. Поднять Tarantool командой .. code-block:: bash docker-compose up 2. Проверить командой .. code-block:: bash docker ps В списке запущенных образов должны присутствовать ``tarantool1`` и ``tarantool2``. Установка CSV-Uploader ---------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка CSV-uploader .. Подключаем файл с установкой CSV-uploader .. include:: ../../modules/csv-uploader/doc/csv_uploader_install.rst Установка REST-адаптера ----------------------- Установка сервисов и необходимых сервисных баз данных. .. attention:: Установка данных сервисов выполняется после выполнения действий, описанных в разделе :ref:`preactions`. Действия по установке выполняются на сервере **ADCM** через SSH-консоль технологического пользователя. Установка docker-образов ~~~~~~~~~~~~~~~~~~~~~~~~ Установка **Docker** описана в разделе :ref:`install_adcm`. Далее необходимо установить образ REST-адаптера, при этом файл образа ``.tar`` должен быть загружен через **Docker** из дистрибутива программы. Пример команды для установки: .. code-block:: bash docker image load -i Подготовка конфигурации ~~~~~~~~~~~~~~~~~~~~~~~ Для подготовки скриптов необходимо выполнить следующие действия: 1. Отредактировать переменные в файле ``application.yml`` для рабочей среды. Отредактированный файл необходимо поместить в директорию ``config``: - указать корректный путь до целевой БД. Переменная ``jdbc_url``. Например: .. code-block:: bash 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``: .. code-block:: bash cd ~/direct 2. Поднять сервис конечных точек командой: .. code-block:: bash docker-compose up -d 3. Проверить установку следующей командой: .. code-block:: bash docker ps В списке запущенных образов должен присутствовать ``rest-adapter``. Установка Counter-provider -------------------------- Описание настроек модуля приведено в "Руководстве администратора". .. Установка Counter-provider .. Подключаем файл с установкой Counter-provider .. include:: ../../modules/counter-provider/doc/counter_provider_install.rst Установка коннектора Kafka-Postgres ----------------------------------- 1. Из полученного дистрибутива ПО скопировать и загрузить в папку **kafka-postgres-connector** файлы: - ``kafka-postgres-writer-0.3.0.jar``, - ``kafka-postgres-reader-0.3.0.jar``, - ``kafka-postgres-avro-0.3.0.jar``. 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 **ADCM** – сервер, с которого будет централизованно производиться установка почти всех компонентов программы. Данный компонент обязателен для установки. **ADCM** поставляется в docker-контейнерах, поэтому чтобы установить ADCM на сервере должен быть установлен **Docker** или совместимое программное обеспечение для работы с контейнерами. Текущая версия программного обеспечения несовместима с SELinux. Подробная инструкция по установке **ADCM** приведена в официальной документации разработчика: https://docs.arenadata.io/adcm/user/install.html. Установка **ADCM** осуществляется пользователем согласно следующим этапам: 1. Выключить ``selinux``. Для этого в файле ``/etc/selinux/config`` установите значение ``SELINUX=disabled`` и перезапустить сервер командой ``reboot now``. 2. Установите **Docker** для этого используйте следующие команды .. code-block:: bash 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**. Для этого используйте следующие команды .. code-block:: bash docker pull arenadata/adcm:latest docker create --name adcm -p 8000:8000 -v /opt/adcm:/adcm/data arenadata/adcm:latest 4. Запустите **ADCM** командой .. code-block:: bash 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 **ADS** устанавливается на кластере с помощью **ADCM** из загруженного установочного пакета (бандла). Скачать установочный пакет (версия: ``ads_v1.6.0.0-1``) можно с сайта разработчика: https://store.arenadata.io/#products/arenadata_streaming. Подробная инструкция по установке **ADS** приведена в официальной документации разработчика: - `https://docs.arenadata.io/DTM/Install/ADS.html `__ - `https://docs.arenadata.io/ads/Install/index.html `_. В данной инструкции описывается установка кластера Kafka и импорт уже установленного кластера **Zookeeper**. 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 2. В разделе **Services** графического интерфейса ADCM необходимо добавить сервисы в созданный кластер (см. :numref:`image7`). Версии сервисов могут отличаться от указанных на рисунке. .. _image7: .. figure:: img/image7_ig.png :align: center :alt: Добавление через графический интерфейс ADCM сервисов в созданный кластер Добавление через графический интерфейс ADCM сервисов в созданный кластер 3. В случае, если **Kafka** и **Zookeeper** разворачивается в одном кластере, необходимо добавить сервис **Zookeeper**. 4. В разделе **Hosts** графического интерфейса ADCM указать серверы созданного кластера, на которых будет развёрнуто ПО **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* по относительному пути: .. code-block:: bash /var/log/zookeeper/ - Проверьте лог-файл *Kafka* по относительному пути: .. code-block:: bash /var/log/kafka/ - Проверьте настройки подключения к кластеру **Zookeeper** с помощью сторонней утилиты **KafkaTool** (см :numref:`image12`). - Проверьте корректность разрешения имен серверов для автоматического определения bootstrap-серверов **Kafka**. При отсутствии DNS-севера добавьте в локальный ``hosts`` адреса **Kafka**. - Определите путь ``chroot path``, для этого выполните на любом сервере **Zookeeper** команду: .. code-block:: bash /usr/lib/zookeeper/bin/zkCli.sh Далее, выполните команду: .. code-block:: bash 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).