免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2752 | 回复: 0

如何编译开源 Greenplum Database (GPDB) 代码 [复制链接]

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
发表于 2016-03-24 16:20 |显示全部楼层
本帖最后由 大梦 于 2016-03-24 16:20 编辑


本文以 RHEL7 为例介绍如何编译、安装和运行开源 GPDB。最新的代码(2015/12) 也可以在 RHEL6 上编译了。
1. 下载 Greenplum Database 源代码

$ git clone https://github.com/greenplum-db/gpdb

2. 安装依赖库

Greenplum Database 编译和运行依赖于各种系统库和Python库。需要先安装这些依赖。

$ sudo yum install curl-devel bzip2-devel python-devel openssl-devel
$ sudo yum install perl-ExtUtils-Embed  # If enable perl
$ sudo yum install libxml2-devel        # If enable XML support
$ sudo yum install openldap-devel       # If enable LDAP
$ sudo yum install pam pam-devel        # If enable PAM

$ sudo yum install perl-devel           # If need installcheck-good

一种安装python库的方法是:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo pip install psi lockfile paramiko setuptools epydoc

另一种安装python库的方法是:
$ yum install -y python-setuptools
$ easy_install pip
$ pip install psi paramiko

3. 编译 Greenplum Database 源代码并安装
3.1 假定安装到 $HOME/gpdb.master 目录下

$ ./configure --prefix=/home/gpadmin/gpdb.master \
                                           --with-gssapi --with-pgport=5432 \
                                           --with-libedit-preferred --with-perl \
                                           --with-python --with-openssl --with-pam \
                                           --with-krb5 --with-ldap --with-libxml \
                                           --enable-cassert --enable-debug \
                                           --enable-testutils \
                                           --enable-debugbreak \
                                           --enable-depend
$ make
$ make install

3.2 编译GPDB扩展组件代码(以gpfdist为例)

缺省一些组件的代码不是自动编译的,下面以gpfdist为例解释一下怎么编译GPDB的组件

$ cd $HOME/gpdb.master/gpAux/extensions/gpfdist
$ sudo yum install apr-devel libyaml-devel libevent-devel
$ ./configure --enable-transformations --prefix=$HOME/gpdb.master
$ make
$ make install

4. 初始化 Greenplum Database 集群

安装了二进制文件后,需要初始化数据库集群。下面在一台笔记本上安装一个GPDB的集群。集群包括一个master,两个segments。

# source一些环境变量, 例如PATH
$ source $HOME/gpdb.master/greenplum_path.sh

# 交换集群中所有机器的ssh密钥, 我们这里只有一台机器
$ gpssh-exkeys -h `hostname`

4.1 生成三个配置文件

$ cat env.sh
source $HOME/gpdb.master/greenplum_path.sh
export PGPORT=5432
export MASTER_DATA_DIRECTORY=$HOME/data/master/gpseg-1

# 集群中所有机器的hostname, 我们这里只有一台
$ cat hostfile
<your_hostname>

$ cat gpinitsystem_config
ARRAY_NAME="Open Source GPDB"

SEG_PREFIX=gpseg
PORT_BASE=40000

# 根据需要,修改下面的路径和主机名
# 有几个DATA_DIRECTORY, 每个节点上便会启动几个segments
declare -a DATA_DIRECTORY=(/path/to/your/data /path/to/your/data)

# master的主机名, 路径和端口
MASTER_HOSTNAME=your_hostname
MASTER_DIRECTORY=/path/to/your/data/master
MASTER_PORT=5432

TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MACHINE_LIST_FILE=hostfile

4.2 初始化 GPDB cluster

$ source env.sh

# 多台机器的话可以指定hostfile, gpinitsystem命令会自动进行安装初始化工作
$ gpinitsystem -c gpinitsystem_config -a

初始化成功后,运行以下命令验证系统状态:

$ psql -l
$ gpstate

5. 简单测试

$ createdb test
$ psql test
test# CREATE TABLE t1 AS SELECT * FROM generate_series(1, 1000);

test# SELECT gp_segment_id, count(1) FROM t1 GROUP BY gp_segment_id
gp_segment_id  |  count
---------------+---------
        0      |  501
        1      |  499

6. 可能问题

    如果你的系统上已经安装了 PostgreSQL,有可能会有冲突。还没来得及看问题原因 ** 这个问题已经解决,GPDB 默认安装路径为 /usr/local/gpsql, 或者可以自定义安装路径,不和 pg 安装目录冲突既可。
    GPDB github 主页上有怎么样初始化 demo cluster 的步骤,不过这个步骤假定安装 3 个primary,3 个mirror,一般笔记本上吃不消。 如果机器够强大,使用 demo cluster 更简单些。
    如果有什么问题,欢迎使用 GPDB 的邮件列表报告bug: greenplum.org
    本网站仅是临时GPDB中文网站,请以 greenplum.org 信息为准。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP