Установка
В этом разделе описывается сборка фреймворка расширений 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 -
cURL7.29 или более поздней версии -
unzip
-
-
Запущен кластер Greengage DB, см. Сборка Greengage DB из исходного кода и Инициализация СУБД.
-
Имеется доступ ко всем хостам кластера (мастер, резервный мастер и сегмент-хосты). Пользователь операционной системы, являющийся владельцем каталога установки PXF, также должен являться владельцем каталога установки Greengage DB или иметь права на запись в этот каталог.
-
(Опционально) Создан произвольный каталог для хранения клонированного исходного кода PXF и необходимого предварительного программного обеспечения. На протяжении всего руководства в качестве примера такого каталога используется ~/workspace.
Установка зависимостей
Перед сборкой PXF из исходного кода необходимо установить его программные зависимости: Java и Go.
Создание хост-файла
В файле hostfile_secondary_hosts перечисляются имена или IP-адреса всех вторичных хостов кластера (всех хостов, кроме мастер-хоста).
С его помощью вы сможете воспользоваться утилитами Greengage DB gpscp и gpssh и применить изменения, сделанные на мастер-хосте, к остальным хостам кластера.
Файл создается так же, как и при инициализации Greengage DBMS.
-
Подключитесь к мастер-хосту под пользователем
gpadminи войдите в домашний каталог. -
Создайте файл hostfile_secondary_hosts:
$ vi hostfile_secondary_hosts -
Добавьте в файл имена всех вторичных хостов. Например, в случае кластера, состоящего из четырех хостов:
-
mdw— мастер-хост; -
smdw— резервный мастер-хост; -
sdw1иsdw2— сегмент-хосты;
в файл необходимо добавить следующие строки:
smdw sdw1 sdw2
Убедитесь, что в файле нет пустых строк или лишних пробелов.
-
-
Сохраните и закройте файл.
Установка Java
-
На мастер-хосте 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> -
Используя утилиты
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>' -
Установите переменную окружения
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" -
После редактирования файла профиля используйте утилиту
gpssh, чтобы применить изменения с помощью командыsource:$ gpssh -f ~/hostfile_all_hosts "source ~/.bashrc"
Установка Go
-
На мастер-хосте Greengage DB загрузите требуемый пакет Go с сайта go.dev, сохраните и распакуйте его в каталог ~/workspace:
$ curl -O https://go.dev/dl/<go.tar.gz> $ tar zxvf <go.tar.gz> -
Установите переменные окружения
GOPATHиGOPROXYи обновитеPATH:$ export GOPATH=<PATH_TO_GO_HOME> $ export GOPROXY=https://proxy.golang.org $ export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin -
Установите требуемый пакет Ginkgo:
$ go install github.com/onsi/ginkgo/v2/ginkgo@latest
Сборка PXF из исходного кода
-
Клонируйте репозиторий PXF в каталог ~/workspace:
$ git clone https://github.com/greengagedb/pxf.git -
Опционально, переключитесь на тег для сборки и установки конкретной версии:
$ git checkout <tag_name>где
<tag_name>совпадает с номером версии. -
Создайте каталог установки 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" -
Установите переменные окружения
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 каталогах установки и конфигурации см. в разделе Каталог установки. -
После редактирования файла профиля используйте утилиту
gpssh, чтобы применить изменения с помощью командыsource:$ gpssh -f ~/hostfile_all_hosts "source ~/.bashrc" -
Выполните команду
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 <===
-
Используйте утилиту
gpscp, чтобы выполнить установку PXF на вторичных хостах:$ gpscp -f ~/hostfile_secondary_hosts -r /usr/local/pxf =:/usr/local/ -
Добавьте каталог исполняемых утилит PXF в
PATH. Используйте утилитуgpssh, чтобы выполнить это действие на всех хостах кластера:$ gpssh -f ~/hostfile_all_hosts "echo 'export PATH=/usr/local/pxf/bin:\$PATH' >> ~/.bashrc" -
После редактирования файла профиля используйте утилиту
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, обычно |
lib |
Каталог, содержащий добавленные пользователем зависимости среды исполнения. Подкаталог native является каталогом среды выполнения PXF по умолчанию для нативных библиотек |
logs |
Каталог, содержащий лог-файлы исполнения PXF.
Каталог logs и лог-файлы доступны для чтения только владельцу установки Greengage DB, обычно |
run |
Каталог запуска PXF по умолчанию.
После запуска PXF в каталоге создается файл с идентификатором процесса PXF, pxf-app.pid.
Каталог run и его содержимое доступны для чтения только владельцу установки Greengage DB, обычно |
servers |
Каталог, содержащий конфигурации серверов: внутри каждого подкаталога содержится определение сервера, а имя каталога указывает имя сервера.
Имя сервера по умолчанию — |
share |
Каталог общих файлов PXF, которые могут потребоваться для внешних хранилищ данных, к которым вы получаете доступ. Изначально каталог включает только JAR-файл PXF для HBase |
templates |
Каталог, содержащий шаблоны файлов конфигурации серверов |
version |
Файл, указывающий установленную версию PXF |
Запуск PXF
PXF не активен после установки. Перед использованием фреймворка необходимо инициализировать и запустить сервис PXF.
-
Подготовьте новый каталог конфигурации, указанный с помощью
PXF_BASEпри установке:$ pxf cluster prepare -
Запустите сервис 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