Сборка Greengage DB из исходного кода
Этот раздел описывает сборку Greengage DB (на основе Greenplum Database) из исходного кода в операционных системах Linux и запуск тестового кластера. Исходный код Greengage DB доступен в репозитории greengage. Этот репозиторий также содержит скрипты, которые помогут вам установить зависимости, необходимые для сборки Greengage DB на требуемой платформе.
Предварительные требования
Для выполнения действий, описанных в этом документе, вам потребуется одна из следующих операционных систем:
-
Ubuntu 22.04.
-
CentOS 7.9.
Для каждой из операционных систем необходимо установить git.
Настройка операционной системы
Чтобы тестовый кластер Greengage DB работал корректно, вам необходимо настроить некоторые параметры операционной системы.
Отключение SELinux (CentOS)
-
Откройте файл /etc/selinux/config для редактирования:
$ sudo vi /etc/selinux/config
-
Установите для параметра
SELINUX
значениеdisabled
, чтобы отключить SELinux:SELINUX=disabled
-
Сохраните и закройте файл.
-
Перезагрузите систему, чтобы применить изменения.
Редактирование sysctl.conf
-
Откройте файл /etc/sysctl.conf для редактирования:
$ sudo vi /etc/sysctl.conf
-
Установите следующие параметры:
vm.overcommit_memory = 2 vm.overcommit_ratio = 95 net.ipv4.ip_local_port_range = 10000 65535 kernel.sem = 250 2048000 200 8192
-
Сохраните и закройте файл.
-
Чтобы применить изменения, используйте команду
sysctl
:$ sudo sysctl --system
Редактирование limits.conf
-
Откройте файл /etc/security/limits.conf:
$ sudo vi /etc/security/limits.conf
-
Установите следующие параметры для пользователя
gpadmin
:gpadmin soft nofile 524288 gpadmin hard nofile 524288 gpadmin soft nproc 150000 gpadmin hard nproc 150000
gpadmin
будет создан в следующем разделе. -
Сохраните и закройте файл.
Создание административного пользователя Greengage DB
Вам необходимо создать системную учетную запись пользователя для запуска и администрирования Greengage DB, а также сгенерировать для этой учетной записи пару SSH-ключей. Для этого выполните шаги из раздела Создание административного пользователя Greengage DB. Затем вам нужно будет включить беспарольный SSH для данного пользователя, как описано ниже.
Включение беспарольного SSH
-
Добавьте содержимое сгенерированного публичного ключа в файл authorized_keys:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-
Измените права доступа к файлу authorized_keys следующим образом:
$ chmod 600 ~/.ssh/authorized_keys
Используйте команду ssh <hostname>
, чтобы проверить возможность подключения к хосту по SSH без ввода пароля.
Клонирование репозитория Greengage DB
-
Убедитесь, что вы вошли в систему как
gpadmin
и находитесь в домашнем каталоге. -
Клонируйте репозиторий greengage:
$ git clone --recurse-submodules https://github.com/GreengageDB/greengage.git
-
Измените текущий каталог на greengage:
$ cd greengage
Установка зависимостей
Данный раздел описывает установку требуемых зависимостей для сборки Greengage DB на различных операционных системах.
-
Выполните скрипт README.ubuntu.bash для установки зависимостей:
$ sudo ./README.ubuntu.bash
-
Создайте символическую ссылку от python2 к /usr/bin/python:
$ sudo ln -s python2 /usr/bin/python
-
Установите языковые настройки для английского языка (United States) в кодировке UTF-8:
$ sudo locale-gen "en_US.UTF-8"
-
Выполните скрипт README.CentOS.bash для установки зависимостей:
$ sudo ./README.CentOS.bash
-
Откройте файл /etc/ld.so.conf для редактирования:
$ sudo vi /etc/ld.so.conf
-
Добавьте в файл следующие строки, чтобы гарантировать, что динамический компоновщик сможет находить разделяемые библиотеки:
/usr/local/lib /usr/local/lib64
-
Сохраните и закройте файл.
-
Обновите системный кеш разделяемых библиотек с помощью
ldconfig
:$ sudo ldconfig
Установка psutil
-
Установите менеджер пакетов pip:
$ sudo apt install python-pip
-
Установите пакет psutil:
$ pip2 install psutil
Дополнительных действий не требуется. Менеджер пакетов pip и пакет psutil устанавливаются с помощью скрипта README.CentOS.bash.
Сборка и установка Greengage DB
-
Измените текущий каталог на greengage:
$ cd ~/greengage
-
Настройте сборку Greengage DB следующим образом:
$ ./configure \ --with-perl \ --with-python \ --with-libxml \ --with-gssapi \ --prefix=/usr/local/gpdb
ПРИМЕЧАНИЕЧтобы увидеть все доступные параметры сборки, запустите
./configure --help
. -
Скомпилируйте Greengage DB с помощью
make
:$ make -j$(nproc)
Если компиляция завершилась успешно, вывод должен содержать следующую информацию:
... All of Greengage Database successfully made. Ready to install.
-
Установите Greengage DB, используя команду
make install
:$ sudo make -j$(nproc) install
Если установка прошла успешно, вывод должен содержать следующую информацию:
... Greengage Database installation complete.
-
Измените владельца и группу для установленных файлов на
gpadmin
:$ sudo chown -R gpadmin:gpadmin /usr/local/gpdb* $ sudo chgrp -R gpadmin /usr/local/gpdb*
-
Установите путь к Greengage DB и переменные окружения следующим образом:
$ source /usr/local/gpdb/greengage_path.sh
ПРИМЕЧАНИЕДобавьте указанную выше команду
source
в файл запуска оболочкиgpadmin
(например, в .bashrc). Это устанавливает путь к Greengage DB и переменные окружения при каждом входе в систему под пользователемgpadmin
.
Создание тестового кластера
Этот раздел показывает, как запустить тестовый кластер.
Запуск тестового кластера
-
Запустите тестовый кластер, выполнив данную команду:
$ make create-demo-cluster
-
После инициализации и запуска кластера выполните команду
source
для файла gpAux/gpdemo/gpdemo-env.sh, чтобы установить значения переменных окруженияPGPORT
иMASTER_DATA_DIRECTORY
:$ source gpAux/gpdemo/gpdemo-env.sh
-
Проверьте состояние кластера, чтобы убедиться, что все экземпляры запущены:
$ gpstate
Проверка кластера
-
Выведите список всех баз данных кластера:
$ psql -l
Результат должен выглядеть следующим образом:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+------------+------------+--------------------- postgres | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | template0 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin template1 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin (3 rows)
-
Подключитесь к базе данных
postgres
, созданной по умолчанию:$ psql postgres
Результат должен выглядеть следующим образом:
psql (9.4.26) Type "help" for help.
-
Получите информацию об установленной версии Greengage DB:
SELECT version();
Вывод может выглядеть следующим образом:
PostgreSQL 9.4.26 (Greengage Database 6.28.0 build dev) on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit compiled on Jan 27 2025 09:11:47
PostgreSQL 9.4.26 (Greengage Database 6.28.0 build dev) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit compiled on Jan 28 2025 14:25:05