源码编译安装Greenplum数据库

概述

Greenplum的二进制文件和RPM包文件下载的渠道有限,有时可能会不太好下载对应的版本,有需要的可以使用源码编译的方式安装Greeplum。虽然可以但是遇到的问题可能会多一些。

下载源码包

这次所安装的gp版本是5.6,首先在官网上下载好源码
网址:
https://github.com/greenplum-db/gpdb/releases?after=5.8.1

安装一些常用的依赖

必须安装
所有机器以 root 权限,在Terminal 中执行下列命令 (需联网执行 yum 下载安装相应包)
安装pip也需要几步:
安装pip命令

yum -y install epel-release
yum -y install python-pip
[root@dw-greenplum-1 ~]# yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotate gcc-c++ python-py
[root@dw-greenplum-1 ~]# yum -y install bzip2-devel libevent-devel apr-devel curl-devel ed python-paramiko python-devel

[root@dw-greenplum-1 ~]# wget https://bootstrap.pypa.io/get-pip.py
[root@dw-greenplum-1 ~]# python get-pip.py
[root@dw-greenplum-1 ~]# pip install lockfile paramiko setuptools epydoc psutil
[root@dw-greenplum-1 ~]# pip install --upgrade setuptools

安装c++ 11

目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本
编译时报错:

configure: error: *** A compiler with support for C++11 language features is required.
  1. 获取GCC 4.9.4包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;

  2. 解压缩:tar -xf gcc-4.9.4.tar.gz;

  3. 进入到目录gcc-4.9.4,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
    建立输出目录并到目录里:mkdir gcc-build-4.9.4;cd gcc-build-4.9.4;
    …/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib。–enable-languages表示你要让你的gcc支持那些语言,–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。–disable-checking生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查;

  4. 编译:make;注意此步和上一步,比较耗时;

  5. 安装:make install;

  6. 验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;或者可以查看gcc的安装位置:which gcc;然后在查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置,如果显示为;

[root@mdw gpdb-5.6.0]# c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.4/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.9.4 (GCC) 

开始编译

解压下载的greenplum包,并进入。
执行

 ./configure --prefix=/usr/local/greenplum-5.6

编译出错:

configure: error: GPOS header files are required for Pivotal Query Optimizer (orca)

这个问题解决时在编译命令上加上:–dsiable

 ./configure --prefix=/usr/local/greenplum-5.6  --disable  orca

编译无错之后

make
make install

按greenplum正常步骤安装

其他的常见的安装步骤,和bin文件与RPM包安装的步骤一致。
安装完成之后可以看一下状态信息。

20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-Process results...
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-   Successful segment starts                                            = 4
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-   Failed segment starts                                                = 0
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-   Skipped segment starts (segments are marked down in configuration)   = 0
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-Successfully started 4 of 4 segment instances 
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
20181015:18:39:51:005936 gpstart:mdw:gpadmin-[INFO]:-Starting Master instance mdw directory /gpdata/gp-5.6/master/gpseg-1 
20181015:18:39:52:005936 gpstart:mdw:gpadmin-[INFO]:-Command pg_ctl reports Master mdw instance active
20181015:18:39:52:005936 gpstart:mdw:gpadmin-[INFO]:-No standby master configured.  skipping...
20181015:18:39:52:005936 gpstart:mdw:gpadmin-[INFO]:-Database successfully started
[gpadmin@mdw ~]$ 
[gpadmin@mdw ~]$ psql postgres
psql (8.3.23)
Type "help" for help.

postgres=# 
postgres=# 
postgres=# SELECT * from gp_segment_configuration ;
 dbid | content | role | preferred_role | mode | status | port  | hostname |   address    | replication_port 
------+---------+------+----------------+------+--------+-------+----------+--------------+------------------
    1 |      -1 | p    | p              | s    | u      |  5432 | mdw      | mdw          |                 
    2 |       0 | p    | p              | s    | u      | 40000 | sdw1     | 192.168.2.63 |                 
    4 |       2 | p    | p              | s    | u      | 40000 | sdw2     | 192.168.2.64 |                 
    3 |       1 | p    | p              | s    | u      | 40001 | sdw1     | 192.168.2.63 |                 
    5 |       3 | p    | p              | s    | u      | 40001 | sdw2     | 192.168.2.64 |                 
(5 rows)

一些细节问题

源码在安装Greenplum 的最大问题,个人感觉就是会存在一些Python包缺失的之类的错误。而且此错误报错信息很少,可查的来源也不多。很可能陷入僵局。所以在安装之前,得确保所有的节点都安装好各种的Python依赖。

第二次添加

在第一天创建好数据库之后,在第二天的安装监控软件greecplum cc的过程中,出现大量的问题,主要的问题就是编译安装的数据库,缺少各类动态库或依赖关系。而这些东西在编译时就可以通过添加参数直接添加。但是当时并不清楚。所以就决定重新编译安装一次

新的configure选项

./configure --with-perl --with-python --with-libxml --enable-gpperfmon --disable-orca  --prefix=/usr/local/gpdb-5.6

此编译选项也会存在一些依赖包的问题,需要逐个解决

我遇到的问题

plpython动态库

这个问题的主要原因还是因为编译时的参数没有加 with Python 会导致一些动态库没有安装上,例如这个报错,plpythonu
(这个问题是在安装greenplum cc的过程的报错)
将–with-python参数加到编译语句中,重新编译安装

确少UUID相关

解决方法是

yum  install uuid-dev

类似apu的错误

这个错误在余哥的帮助下找到一个方法
http://www.linuxfromscratch.org/blfs/view/cvs/general/apr-util.html
给个友情链接。

猜你喜欢

转载自blog.csdn.net/qq_43303221/article/details/83063177