环境:
——greenplum版本:greenplum-db-5.9.0
——操作系统:CentOS Linux release 7.4.1708 (Core)
下载MADlib二进制安装压缩包:
下载地址:https://network.pivotal.io/products/pivotal-gpdb#/releases/118471/file_groups/1013
什么版本的greenplum就在什么版本里面的Advanced里面寻找MADlib安装包,注意操作系统版本
安装:
1、解压
[gpadmin@node1 ~]$ tar zxvf madlib-1.14-gp5-rhel7-x86_64_(1).tar.gz
会在当前目录生成madlib-1.14-gp5-rhel7-x86_64,我们cd进去
[gpadmin@node1 ~]$ cd madlib-1.14-gp5-rhel7-x86_64/
[gpadmin@node1 madlib-1.14-gp5-rhel7-x86_64]$ ls
madlib-1.14-gp5-rhel7-x86_64.gppkg open_source_license_MADlib_1.14_GA.txt ReleaseNotes.txt
2、安装MADlib的gppkg文件
[gpadmin@node1 madlib-1.14-gp5-rhel7-x86_64]$ gppkg -i madlib-1.14-gp5-rhel7-x86_64.gppkg
我这里出了个问题,就是我安装之后没有安装目录产生,随后我gppkg -u就有了,这里不清楚为什么
[gpadmin@node1 madlib-1.14-gp5-rhel7-x86_64]$ gppkg -u madlib-1.14-gp5-rhel7-x86_64.gppkg
3、默认安装在$GPHOME下,cd进去
[gpadmin@node1 ~]$ cd /usr/local/greenplum-db-5.9.0/madlib/bin/
[gpadmin@node1 bin]$ ./madpack install -s madlib -p greenplum -c gpadmin@node1:5432/data1
-s 指定数据库中的schema
-p 指定要安装的平台,我这是greenplum
-c 指定连接方式,用户名@主机名:端口号/库名
4、安装成功后验证:
data=# \dt
No relations found.
data=# set search_path=madlib;
SET
data=# \dt
List of relations
Schema | Name | Type | Owner | Storage
--------±-----------------±------±--------±--------
madlib | migrationhistory | table | gpadmin | heap
(1 row)
data=# \ds
List of relations
Schema | Name | Type | Owner | Storage
--------±------------------------±---------±--------±--------
madlib | migrationhistory_id_seq | sequence | gpadmin | heap
(1 row)
data=# select type,count(*)
data-# from (select p.proname as name,
data(# case when p.proisagg then 'agg'
data(# when p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype then 'trigger'
data(# else 'normal'
data(# end as type
data(# from pg_catalog.pg_proc p, pg_catalog.pg_namespace n
data(# where n.oid = p.pronamespace and n.nspname='madlib') t
data-# group by rollup (type);
agg | 138
normal | 1442
| 1580
可以看到有138个聚合函数,1332个普通函数。
[gpadmin@node1 ~]$ /usr/local/greenplum-db-5.9.0/madlib/bin/madpack install-check -c /data -s madlib -p greenplum
这个命令是通过执行各个模块中的各个案例,验证所有模块都能正常工作。输出这里就不贴了,太长。