Greenplum DatabaseがOSSで公開されたのでビルドしてみた
注)個人の所感なんで所属会社等の意見とは違うかもしれません
Greenplum Databaseとは?
雑に言うと並列動作するPostgreSQL8.2です。Pivotal社の製品ですがソースが公開されました。
Pivotal、高速データ分析が可能なデータベース「Greenplum Database」をオープンソースとしてリリース:CodeZine(コードジン)
んで公開されたのでビルドしてみました。
単純に触るだけなら上のサイトからVMをダウンロードすればいいかと思います。
--
依存ファイルの関係からcentos7の方が楽かもしれません。
$ mkdir vagrant-gpdb
$ vim Vagrantfile
config.vm.define :node1 do |node|
node.vm.network "public_network"
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
end
$ vagrant up
以下node1上で
$ git clone https://github.com/greenplum-db/gpdb.git
$ cd gpdb
$ sudo yum install readline-devel zlib-devel curl libmetalink libssh2-devel c-ares c-ares-devel bzip2-devel python-devel ed
curl 7.20以上が必要なので
$ curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-devel-7.45.0-1.0.cf.rhel6.x86_64.rpm
$ curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/curl-7.45.0-1.0.cf.rhel6.x86_64.rpm
$ curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-7.45.0-1.0.cf.rhel6.x86_64.rpm
$ curl -O http://mirror.city-fan.org/ftp/contrib/libraries/libssh2-devel-1.6.0-2.0.cf.rhel6.x86_64.rpm
$ sudo rpm -Uvh curl-7.45.0-1.0.cf.rhel6.x86_64.rpm libcurl-devel-7.45.0-1.0.cf.rhel6.x86_64.rpm libcurl-7.45.0-1.0.cf.rhel6.x86_64.rpm libssh2-devel-1.6.0-2.0.cf.rhel6.x86_64.rpm libssh2-1.6.0-2.0.cf.rhel6.x86_64.rpm
$ configure
$ make
...
make[1]: Entering directory `/home/vagrant/gpdb/contrib/indexscan'
gcc -O3 -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-but-set-variable -Wno-address -fpic -I. -I../../src/include -D_GNU_SOURCE -c -o indexscan.o indexscan.c
gcc -O3 -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-but-set-variable -Wno-address -fpic -L../../src/port -L../../src/port -Wl,--as-needed -Wl,-rpath,'/data/gpdb/lib',--enable-new-dtags -shared -o indexscan.so indexscan.o
rm indexscan.o
make[1]: Leaving directory `/home/vagrant/gpdb/contrib/indexscan'
All of Greenplum Database successfully made. Ready to install.
$ sudo make install
find /data/gpdb/lib/python/gppylib -name test -type d | xargs rm -rf
make[1]: Leaving directory `/home/vagrant/gpdb/gpMgmt'
Greenplum Database installation complete.
$ sudo vim /etc/sysconfig/
HOSTNAME=mdw
$ sudo vim /etc/hosts
add mdw
$ sudo reboot
$ source /data/gpdb/greenplum_path.sh
$ cd gpdb/
$ sudo easy_install lockfile==0.9.1
[root@mdw ~]# gpseginstall -f /tmp/hostfile -ugpadmin -p gpadmin
[root@mdw ~]# mkdir /data1/primary
[root@mdw ~]# mkdir /data2/primary
[root@mdw ~]# mkdir /data3/primary
[root@mdw ~]# chown gpadmin:gpadmin /data1/primary
[root@mdw ~]# chown gpadmin:gpadmin /data2/primary
[root@mdw ~]# chown gpadmin:gpadmin /data3/primary
[root@mdw ~]# su - gpadmin
[gpadmin@mdw ~]$ source /data/gpdb/greenplum_path.sh
[gpadmin@mdw ~]$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
[gpadmin@mdw ~]$ vi /home/gpadmin/gpconfigs/gpinitsystem_config
declare -a DATA_DIRECTORY=(/data1/primary /data2/primary)
$ vi /tmp/hostfile
今回は
mdw
だけ
[gpadmin@mdw ~]$ gpinitsystem -c gpconfigs/gpinitsystem_config -h /tmp/hostfile
$ export MASTER_DATA_DIRECTORY=/data/master/gpseg-1/
このあとgpstopで止まる。gpstartで起動。
あとはpostgresと一緒なので、
$ createdb hoge
とかで繋がる
sum
-----
3
(1 row)