Установка PXF из пакета
Начиная с версии 6.16.0 пакеты фреймворка расширений Greenplum Platform Extension Framework (PXF) доступны через официальный APT-репозиторий. В данной статье описывается установка PXF из пакета в операционных системах Ubuntu 22.04 и 24.04.
По умолчанию 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
-
Ubuntu 24.04
-
-
Запущен кластер Greengage DB, см. Инициализация СУБД.
-
Имеется доступ ко всем хостам кластера (мастер, резервный мастер и сегмент-хосты). Пользователь операционной системы, являющийся владельцем каталога установки PXF, также должен являться владельцем каталога установки Greengage DB или иметь права на запись в этот каталог.
-
(Опционально) Создан произвольный каталог для хранения необходимого пакета JDK. На протяжении всего руководства в качестве примера используется workspace в домашнем каталоге пользователя
gpadmin.
Создание хост-файлов
В файле hostfile_all_hosts перечисляются имена или IP-адреса всех хостов кластера.
В файле hostfile_secondary_hosts перечисляются имена или IP-адреса всех вторичных хостов кластера (всех хостов, кроме мастер-хоста).
С помощью этих файлов вы сможете воспользоваться утилитами Greengage DB gpscp и gpssh и применить изменения ко всем хостам кластера, а также изменения на мастер-хосте — к остальным хостам кластера.
Файлы создаются, как описано в разделе Создание хост-файлов:
-
На мастер-хосте Greengage DB войдите под пользователем
gpadminи перейдите в домашний каталог. -
Создайте файл hostfile_all_hosts:
$ vi hostfile_all_hosts -
Добавьте в файл имена всех хостов кластера. Например, в случае кластера, состоящего из четырех хостов:
-
mdw— мастер-хост; -
smdw— резервный мастер-хост; -
sdw1иsdw2— сегмент-хосты;
в файл необходимо добавить следующие строки:
mdw smdw sdw1 sdw2
Убедитесь, что в файле нет пустых строк или лишних пробелов.
-
-
Сохраните и закройте файл.
-
Создайте файл hostfile_secondary_hosts:
$ vi hostfile_secondary_hosts -
Добавьте в файл имена всех вторичных хостов.
smdw sdw1 sdw2
Убедитесь, что в файле нет пустых строк или лишних пробелов.
-
Сохраните и закройте файл.
Установка Java
-
Загрузите требуемый пакет JDK 17 с сайта jdk.java.net и сохраните его в каталог ~/workspace.
$ cd ~/workspace $ curl -O -L 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" -
После редактирования файла профиля примените изменения с помощью команды
source:$ source ~/.bashrc
Установка PXF
-
Убедитесь, что вы вошли в систему под пользователем с правами
sudo. -
Импортируйте ключ подписи репозитория Greengage DB:
$ curl -fsSL https://greengagedb.org/repositories/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/greengagedb.gpg -
Добавьте APT-репозиторий Greengage DB:
$ echo 'deb [signed-by=/etc/apt/keyrings/greengagedb.gpg] https://greengagedb.org/repositories/ubuntu/22.04/x86_64 greengagedb main' \ | sudo tee /etc/apt/sources.list.d/greengagedb.list$ echo 'deb [signed-by=/etc/apt/keyrings/greengagedb.gpg] https://greengagedb.org/repositories/ubuntu/24.04/x86_64 greengagedb main' \ | sudo tee /etc/apt/sources.list.d/greengagedb.list -
Обновите метаданные пакетов:
$ sudo apt update -
Установите пакеты PXF:
-
pxf-server— Java-сервер PXF; -
pxf-cli— набор утилит командной строки PXF CLI; -
pxf-fdw<N>— расширенияpxf_fdw/external-table, гдеNобозначает мажорную версию Greengage DB (6или7).
$ sudo apt install pxf-server pxf-cli pxf-fdw<N> -
-
Повторите шаги установки пакетов на каждом хосте кластера Greengage DB.
Проверка установки
-
Убедитесь, что пакеты установлены успешно:
$ dpkg -l | grep pxfВывод должен выглядеть следующим образом:
ii pxf-cli 6.16.0 amd64 PXF CLI tools ii pxf-fdw6 6.16.0 amd64 PXF FDW extension for Greengage 6 ii pxf-server 6.16.0 amd64 PXF Server
-
Проверьте пути установки:
$ dpkg -L pxf-server pxf-cli pxf-fdw6Вывод содержит список всех файлов, установленных пакетами:
/. /opt /opt/greengagedb /opt/greengagedb/pxf /opt/greengagedb/pxf/application /opt/greengagedb/pxf/application/pxf-app-6.16.0.jar /opt/greengagedb/pxf/bin ... /. /opt /opt/greengagedb /opt/greengagedb/pxf /opt/greengagedb/pxf/bin /opt/greengagedb/pxf/bin/pxf /opt/greengagedb/pxf/bin/pxf-cli ... /. /opt /opt/greengagedb /opt/greengagedb/greengage6 /opt/greengagedb/greengage6/lib /opt/greengagedb/greengage6/lib/postgresql /opt/greengagedb/greengage6/lib/postgresql/pxf.so /opt/greengagedb/greengage6/lib/postgresql/pxf_fdw.so /opt/greengagedb/greengage6/share /opt/greengagedb/greengage6/share/postgresql /opt/greengagedb/greengage6/share/postgresql/extension /opt/greengagedb/greengage6/share/postgresql/extension/pxf--1.0--2.0.sql /opt/greengagedb/greengage6/share/postgresql/extension/pxf--1.0.sql ...
Установка пути PXF
-
Установите переменные окружения
PXF_HOME(указывающую на каталог установки PXF) иPXF_BASE(указывающую на каталог конфигурации исполнения PXF), добавив соответствующие команды в .bashrc. Используйте утилитуgpssh, чтобы выполнить это действие на всех хостах кластера:$ gpssh -f ~/hostfile_all_hosts "echo 'export PXF_HOME=/opt/greengagedb/pxf' >> ~/.bashrc" $ gpssh -f ~/hostfile_all_hosts "echo 'export PXF_BASE=${HOME}/pxf-base' >> ~/.bashrc"В качестве альтернативы, если переменная
PXF_HOMEуже была установлена ранее, вы можете заменить ее значение на новое. Например, еслиPXF_HOMEприсвоено значение/usr/local/pxf:$ gpssh -f ~/hostfile_all_hosts "sed -i 's|^export PXF_HOME=/usr/local/pxf$|export PXF_HOME=/opt/greengagedb/pxf|' ~/.bashrc" -
Добавьте каталог исполняемых утилит PXF в
PATH. Используйте утилитуgpssh, чтобы выполнить это действие на всех хостах кластера:$ gpssh -f ~/hostfile_all_hosts "echo 'export PATH=/opt/greengagedb/pxf/bin:\$PATH' >> ~/.bashrc"В качестве альтернативы, если переменная
PATHуже была установлена в .bashrc ранее, вы можете заменить ее значение на новое. Например, если вPATHустановлено значение/usr/local/pxf/bin:$ gpssh -f ~/hostfile_all_hosts "sed -i 's|/usr/local/pxf/bin|/opt/greengagedb/pxf/bin|g' ~/.bashrc" -
После редактирования файла профиля примените изменения с помощью команды
source:$ 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 выполните следующую команду на каждом хосте Greengage DB:
$ pxf version
Вывод должен выглядеть подобным образом:
PXF version 6.16.0
Запуск PXF
PXF не активен после установки. Перед использованием фреймворка необходимо инициализировать и запустить сервис PXF.
-
Подготовьте новый каталог конфигурации, указанный с помощью
PXF_BASEпри установке:$ pxf cluster prepare -
Если значение переменной окружения
JAVA_HOMEне совпадает со значением по умолчанию (например,/usr/java/default), его необходимо указать с помощью настройки PXF:-
Откройте конфигурационный файл $PXF_BASE/conf/pxf-env.sh в текстовом редакторе.
-
При необходимости раскомментируйте свойство
JAVA_HOMEи укажите требуемое значение, например:export JAVA_HOME=/home/gpadmin/workspace/<PATH_TO_JAVA_HOME> -
Синхронизируйте конфигурацию между хостами кластера Greengage DB:
$ pxf cluster syncВывод должен выглядеть подобным образом:
Syncing PXF configuration files from coordinator host to standby coordinator host and 2 segment hosts... PXF configs synced successfully on 3 out of 3 hosts
-
-
Выполните следующую команду, чтобы запустить сервис 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 cluster stop