Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

Установка

Антон Монаков

В этом разделе описывается сборка фреймворка расширений Greenplum Platform Extension Framework (PXF) из исходного кода в операционных системах Linux для использования в кластере Greengage DB. Исходный код PXF доступен в репозитории GitHub.

По умолчанию PXF развертывается в топологии совместного размещения. В этом сценарии PXF устанавливается на каждом хосте Greengage DB, а сервис PXF запускается и работает на каждом сегмент-хосте. Сервисы PXF затем управляются совместно с помощью команд pxf cluster.

В альтернативном сценарии PXF устанавливается и на все хосты Greengage DB, и на хосты вне кластера. Сервисы PXF в этом случае управляются индивидуально с помощью команды pxf на каждом хосте; управлять ими совместно с помощью команд pxf cluster нельзя. При выборе альтернативной топологии развертывания необходимо настроить каждый хост Greengage DB, указав хост и адрес прослушивания, на котором работает сервис PXF.

Более подробную информацию об управлении кластером PXF можно получить в статье Управление PXF. Полное описание команд pxf и pxf cluster приведено в статьях Обзор команд pxf и Обзор команд pxf cluster.

Предварительные требования

Чтобы выполнить шаги установки, убедитесь, что рабочее окружение соответствует следующим требованиям:

  • Используется одна из операционных систем:

    • Ubuntu 22.04

    • CentOS 7.9

  • В выбранной операционной системе установлено следующее программное обеспечение:

    • git

    • Компилятор GCC

    • Утилита make

    • cURL 7.29 или более поздней версии

    • unzip

  • Запущен кластер Greengage DB, см. Сборка Greengage DB из исходного кода и Инициализация СУБД.

  • Имеется доступ ко всем хостам кластера (мастер, резервный мастер и сегмент-хосты). Пользователь операционной системы, являющийся владельцем каталога установки PXF, также должен являться владельцем каталога установки Greengage DB или иметь права на запись в этот каталог.

  • (Опционально) Создан произвольный каталог для хранения клонированного исходного кода PXF и необходимого предварительного программного обеспечения. На протяжении всего руководства в качестве примера такого каталога используется ~/workspace.

Установка зависимостей

Перед сборкой PXF из исходного кода необходимо установить его программные зависимости: Java и Go.

Создание хост-файла

В файле hostfile_secondary_hosts перечисляются имена или IP-адреса всех вторичных хостов кластера (всех хостов, кроме мастер-хоста). С его помощью вы сможете воспользоваться утилитами Greengage DB gpscp и gpssh и применить изменения, сделанные на мастер-хосте, к остальным хостам кластера.

Файл создается так же, как и при инициализации Greengage DBMS.

  1. Подключитесь к мастер-хосту под пользователем gpadmin и войдите в домашний каталог.

  2. Создайте файл hostfile_secondary_hosts:

    $ vi hostfile_secondary_hosts
  3. Добавьте в файл имена всех вторичных хостов. Например, в случае кластера, состоящего из четырех хостов:

    • mdw — мастер-хост;

    • smdw — резервный мастер-хост;

    • sdw1 и sdw2 — сегмент-хосты;

    в файл необходимо добавить следующие строки:

    smdw
    sdw1
    sdw2

    Убедитесь, что в файле нет пустых строк или лишних пробелов.

  4. Сохраните и закройте файл.

Установка Java

  1. На мастер-хосте Greengage DB загрузите требуемый пакет JDK 17 с сайта jdk.java.net и сохраните его в каталог ~/workspace.

    $ cd ~/workspace
    $ curl -O https://download.java.net/java/GA/jdk17.0.1/<openjdk-17.tar.gz>
  2. Используя утилиты gpscp и gpssh, скопируйте пакет на вторичные хосты кластера, а затем распакуйте его на всех хостах:

    $ gpssh -f ~/hostfile_secondary_hosts "mkdir -p /home/gpadmin/workspace"
    $ gpscp -f ~/hostfile_secondary_hosts /home/gpadmin/workspace/<openjdk-17.tar.gz> =:/home/gpadmin/workspace/
    $ gpssh -f ~/hostfile_all_hosts 'tar -C /home/gpadmin/workspace -zxvf /home/gpadmin/workspace/<openjdk-17.tar.gz>'
  3. Установите переменную окружения JAVA_HOME, указав в ней путь к распакованному пакету JDK 17. Добавьте переменную в PATH и обновите файл запуска оболочки (например, .bashrc). Используйте утилиту gpssh, чтобы выполнить эти действия на всех хостах кластера:

    $ gpssh -f ~/hostfile_all_hosts "echo 'export JAVA_HOME=/home/gpadmin/workspace/<PATH_TO_JAVA_HOME>' >> ~/.bashrc"
    $ gpssh -f ~/hostfile_all_hosts "echo 'export PATH=\"\$JAVA_HOME/bin:\$PATH\"' >> ~/.bashrc"
  4. После редактирования файла профиля используйте утилиту gpssh, чтобы применить изменения с помощью команды source:

    $ gpssh -f ~/hostfile_all_hosts "source ~/.bashrc"

Установка Go

  1. На мастер-хосте Greengage DB загрузите требуемый пакет Go с сайта go.dev, сохраните и распакуйте его в каталог ~/workspace:

    $ curl -O https://go.dev/dl/<go.tar.gz>
    $ tar zxvf <go.tar.gz>
  2. Установите переменные окружения GOPATH и GOPROXY и обновите PATH:

    $ export GOPATH=<PATH_TO_GO_HOME>
    $ export GOPROXY=https://proxy.golang.org
    $ export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
  3. Установите требуемый пакет Ginkgo:

    $ go install github.com/onsi/ginkgo/v2/ginkgo@latest

Сборка PXF из исходного кода

  1. Клонируйте репозиторий PXF в каталог ~/workspace:

    $ git clone https://github.com/greengagedb/pxf.git
  2. Опционально, переключитесь на тег для сборки и установки конкретной версии:

    $ git checkout <tag_name>

    где <tag_name> совпадает с номером версии.

  3. Создайте каталог установки PXF (например, /usr/local/pxf) и назначьте пользователя gpadmin его владельцем. Используйте утилиту gpssh, чтобы выполнить это действие на всех хостах кластера:

    $ gpssh -f ~/hostfile_all_hosts "sudo mkdir -p /usr/local/pxf"
    $ gpssh -f ~/hostfile_all_hosts "sudo chown -R gpadmin:gpadmin /usr/local/pxf"
  4. Установите переменные окружения PXF_HOME (указывающую на каталог установки PXF) и PXF_BASE (указывающую на каталог конфигурации исполнения PXF), добавив соответствующие команды в .bashrc. Используйте утилиту gpssh, чтобы выполнить это действие на всех хостах кластера:

    $ gpssh -f ~/hostfile_all_hosts "echo 'export PXF_HOME=/usr/local/pxf' >> ~/.bashrc"
    $ gpssh -f ~/hostfile_all_hosts "echo 'export PXF_BASE=\"${HOME}/pxf-base\"' >> ~/.bashrc"
    ПРИМЕЧАНИЕ

    Если переменная PXF_BASE не установлена, по умолчанию применяется значение PXF_HOME. В этом случае конфигурации серверов, библиотеки или другие настройки могут быть удалены при переустановке PXF. Подробнее об используемых PXF каталогах установки и конфигурации см. в разделе Каталог установки.

  5. После редактирования файла профиля используйте утилиту gpssh, чтобы применить изменения с помощью команды source:

    $ gpssh -f ~/hostfile_all_hosts "source ~/.bashrc"
  6. Выполните команду make install для компиляции и установки PXF:

    $ cd ~/workspace/pxf
    $ make install

    Вывод должен выглядеть подобным образом:

    ...
    BUILD SUCCESSFUL in 4m 26s
    24 actionable tasks: 24 executed
    install -m 744 -d "build/stage/lib"
    install -m 744 -d "build/stage/lib/native"
    install -m 744 -d "build/stage/servers"
    install -m 744 -d "build/stage/servers/default"
    install -m 700 -d "build/stage/logs"
    install -m 700 -d "build/stage/run"
    install -m 700 -d "build/stage/keytabs"
    make[1]: Leaving directory '/home/gpadmin/workspace/pxf/server'
    ===> PXF compilation is complete <===
  7. Используйте утилиту gpscp, чтобы выполнить установку PXF на вторичных хостах:

    $ gpscp -f ~/hostfile_secondary_hosts -r /usr/local/pxf =:/usr/local/
  8. Добавьте каталог исполняемых утилит PXF в PATH. Используйте утилиту gpssh, чтобы выполнить это действие на всех хостах кластера:

    $ gpssh -f ~/hostfile_all_hosts "echo 'export PATH=/usr/local/pxf/bin:\$PATH' >> ~/.bashrc"
  9. После редактирования файла профиля используйте утилиту gpssh, чтобы применить изменения с помощью команды source:

    $ gpssh -f ~/hostfile_all_hosts "source ~/.bashrc"

Каталог установки

Каталог установки PXF (указанный с помощью PXF_HOME) содержит исполняемые и конфигурационные файлы PXF.

Элемент Описание

application

Каталог, содержащий JAR-файл приложения PXF Server

bin

Каталог, содержащий исполняемые файлы утилит командой строки PXF

conf

Каталог, содержащий пользовательские конфигурационные файлы среды исполнения и логирования PXF: pxf-application.properties, pxf-env.sh, pxf-log4j2.xml, и pxf-profiles.xml

keytabs

Каталог, используемый по умолчанию для хранения keytab-файла сервисного принципала PXF. Каталог keytabs и его содержимое доступны для чтения только владельцу установки Greengage DB, обычно gpadmin

lib

Каталог, содержащий добавленные пользователем зависимости среды исполнения. Подкаталог native является каталогом среды выполнения PXF по умолчанию для нативных библиотек

logs

Каталог, содержащий лог-файлы исполнения PXF. Каталог logs и лог-файлы доступны для чтения только владельцу установки Greengage DB, обычно gpadmin

run

Каталог запуска PXF по умолчанию. После запуска PXF в каталоге создается файл с идентификатором процесса PXF, pxf-app.pid. Каталог run и его содержимое доступны для чтения только владельцу установки Greengage DB, обычно gpadmin

servers

Каталог, содержащий конфигурации серверов: внутри каждого подкаталога содержится определение сервера, а имя каталога указывает имя сервера. Имя сервера по умолчанию — default

share

Каталог общих файлов PXF, которые могут потребоваться для внешних хранилищ данных, к которым вы получаете доступ. Изначально каталог включает только JAR-файл PXF для HBase

templates

Каталог, содержащий шаблоны файлов конфигурации серверов

version

Файл, указывающий установленную версию PXF

Запуск PXF

PXF не активен после установки. Перед использованием фреймворка необходимо инициализировать и запустить сервис PXF.

  1. Подготовьте новый каталог конфигурации, указанный с помощью PXF_BASE при установке:

    $ pxf cluster prepare
  2. Запустите сервис PXF на всех хостах кластера Greengage DB:

    $ pxf cluster start

    Вывод должен выглядеть подобным образом:

    Starting PXF on coordinator host, standby coordinator host, and 2 segment hosts...
    PXF started successfully on 4 out of 4 hosts

Проверка PXF

Для проверки версии PXF выполните следующую команду на каждом хосте Greengage DB:

$ pxf version

Вывод должен выглядеть подобным образом:

PXF version 6.13.0-SNAPSHOT

Остановка PXF

Чтобы остановить сервис PXF на всех хостах кластера Greengage DB, выполните следующую команду:

$ pxf cluster stop