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

Установка 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 и применить изменения ко всем хостам кластера, а также изменения на мастер-хосте — к остальным хостам кластера.

Файлы создаются, как описано в разделе Создание хост-файлов:

  1. На мастер-хосте Greengage DB войдите под пользователем gpadmin и перейдите в домашний каталог.

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

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

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

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

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

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

    mdw
    smdw
    sdw1
    sdw2

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

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

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

    $ vi hostfile_secondary_hosts
  6. Добавьте в файл имена всех вторичных хостов.

    smdw
    sdw1
    sdw2

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

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

Установка Java

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

    $ cd ~/workspace
    $ curl -O -L 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. После редактирования файла профиля примените изменения с помощью команды source:

    $ source ~/.bashrc

Установка PXF

  1. Убедитесь, что вы вошли в систему под пользователем с правами sudo.

  2. Импортируйте ключ подписи репозитория Greengage DB:

    $ curl -fsSL https://greengagedb.org/repositories/gpg \
      | sudo gpg --dearmor -o /etc/apt/keyrings/greengagedb.gpg
  3. Добавьте 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
  4. Обновите метаданные пакетов:

    $ sudo apt update
  5. Установите пакеты 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>
  6. Повторите шаги установки пакетов на каждом хосте кластера Greengage DB.

Проверка установки

  1. Убедитесь, что пакеты установлены успешно:

    $ 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
  2. Проверьте пути установки:

    $ 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

  1. Установите переменные окружения 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"
  2. Добавьте каталог исполняемых утилит 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"
  3. После редактирования файла профиля примените изменения с помощью команды 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, обычно 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 выполните следующую команду на каждом хосте Greengage DB:

$ pxf version

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

PXF version 6.16.0

Запуск PXF

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

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

    $ pxf cluster prepare
  2. Если значение переменной окружения JAVA_HOME не совпадает со значением по умолчанию (например, /usr/java/default), его необходимо указать с помощью настройки PXF:

    1. Откройте конфигурационный файл $PXF_BASE/conf/pxf-env.sh в текстовом редакторе.

    2. При необходимости раскомментируйте свойство JAVA_HOME и укажите требуемое значение, например:

      export JAVA_HOME=/home/gpadmin/workspace/<PATH_TO_JAVA_HOME>
    3. Синхронизируйте конфигурацию между хостами кластера 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
  3. Выполните следующую команду, чтобы запустить сервис 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