文章目录
概述
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.
-
获取GCC 4.9.4包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;
-
解压缩:tar -xf gcc-4.9.4.tar.gz;
-
进入到目录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来增加一些检查; -
编译:make;注意此步和上一步,比较耗时;
-
安装:make install;
-
验证: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
给个友情链接。