1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-gpdb

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.Conda.md 4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 12:34 89f29fd

Шаги по сборке plpython с Anaconda

Anaconda (https://www.continuum.io/) — это отличный дистрибутив Python для машинного обучения и аналитики, который также предоставляет собственные инструменты отслеживания/управления пакетами. GPDB поддерживает plpython, который может использовать все функции, предоставляемые Anaconda. Обратите внимание, что GPDB сейчас поддерживает только Python 2.7. Хотя plpython можно собрать с Python 3.x, другие инструменты Python в GPDB не будут работать с Python 3.x.

Вы можете попробовать выполнить следующие шаги, чтобы запустить Anaconda с GPDB из исходного кода.

Установить Anaconda

Мы используем miniconda здесь.

wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh
chmod +x Miniconda-latest-Linux-x86_64.sh
./Miniconda-latest-Linux-x86_64.sh

Затем следуйте инструкциям, чтобы завершить установку Anaconda. Предположим, что miniconda установлена в "/PATH/TO/CONDAHOME".

ВАЖНО: Добавьте этот путь в начало PATH среды, чтобы Anaconda стал Python по умолчанию.

export PATH=/PATH/TO/CONDAHOME/bin:$PATH

Установите необходимые инструменты

Следующие инструкции приведены для Centos/RHEL/Fedora в качестве примера.

sudo yum install git
sudo yum groupinstall "Development tools"
sudo yum install curl-devel bzip2-devel openssl-devel perl-ExtUtils-Embed libxml2-devel openldap-devel pam pam-devel perl-devel readline-devel

Python-devel здесь не требуется, поскольку он предоставляется Anaconda.

Скачайте и соберите GPDB

git clone https://github.com/greenplum-db/gpdb.git
cd gpdb
./configure --prefix=`pwd`/greenplumdb --with-gssapi --with-pgport=5432 --with-perl --with-python --with-openssl --with-libxml --enable-cassert --enable-debug --enable-depend
make install

Убедитесь, что параметр "--with-python" существует. Поскольку по умолчанию используется Python от Anaconda, всё готово.

Проверьте путь к Python

В следующем примере Anaconda устанавливается в /home/gpadmin/miniconda.

ldd greenplumdb/lib/postgresql/plpython.so
...
libpython2.7.so.1.0 => /home/gpadmin/miniconda/lib/libpython2.7.so.1.0 (0x00007f1f3c40c000)
...

Установите пакет Python из Anaconda

Установите numpy из Anaconda командой:

conda install numpy

Если вы запускаете многоузловой кластер, убедитесь, что пути установки Anaconda (и GPDB) одинаковы на каждом хосте. gpssh может помочь установить пакет Anaconda на каждом сегменте:

gpssh -f hostlistfile /PATH/TO/CONDAHOME/bin/conda install numpy

Инициализируйте кластер GPDB

Запустите «Hello world»

Вы можете запустить следующий пример, чтобы убедиться, что Anaconda работает у вас.

DROP LANGUAGE IF EXISTS 'plpythonu' CASCADE;
CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;

CREATE OR REPLACE FUNCTION testnumpy() RETURNS float AS
$$
    import time,numpy
    t1 = time.time()
    X = numpy.arange(10000000)
    Y = numpy.arange(10000000)
    Z = X + Y
    return time.time() - t1
$$
LANGUAGE 'plpythonu' VOLATILE;
select testnumpy();

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-gpdb.git
git@api.gitlife.ru:oschina-mirror/mirrors-gpdb.git
oschina-mirror
mirrors-gpdb
mirrors-gpdb
main