Шаги по сборке 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 из исходного кода.
Мы используем 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.
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, всё готово.
В следующем примере 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)
...
Установите numpy из Anaconda командой:
conda install numpy
Если вы запускаете многоузловой кластер, убедитесь, что пути установки Anaconda (и GPDB) одинаковы на каждом хосте. gpssh может помочь установить пакет Anaconda на каждом сегменте:
gpssh -f hostlistfile /PATH/TO/CONDAHOME/bin/conda install numpy
Вы можете запустить следующий пример, чтобы убедиться, что 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 )