文章目录

  • 概述
  • 下载源码包
  • 安装一些常用的依赖
  • 安装c++ 11
  • 开始编译
  • 按greenplum正常步骤安装
  • 一些细节问题
  • 第二次添加
  • 新的configure选项
  • 我遇到的问题
    • plpython动态库
    • 确少UUID相关
    • 类似apu的错误

概述

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
给个友情链接。

编译安装Greenplum源码包相关推荐

  1. 源码包安装mysql_源码包安装MySQL

    MySQL安装方式 1.二进制安装2.源码包安装3.rpm包安装 一.源码包安装 源码包安装比较繁琐,但是更加灵活,可以按自己需求配置 1.下载源码包 [root@db03~]# wget https ...

  2. php 7.0 编译安装mysql_源码编译安装php7.0.5

    源码编译安装php7.0.5 源码包下载地址 安装epel扩展yum源 [root@xuegod63 ~]# yum clean all [root@xuegod63 ~]# yum list 注:R ...

  3. Linux下载安装一个源码包

    下载一个安装包除了yum和rpm之外我们还可以下载源码包 编译并安装 首先下载所有的源码包一定要去官网,为了就是防止源码包被第三方编译 例如我们今天安装一个httpd的源码包,也就是经常说的apach ...

  4. 编译安装C源码程序程序

    编译安装 程序的组成部分 1 二进制文件:可运行的程序文件: 2 库文件:lib目录下的文件: 3 配置文件:一般位于/etc/目录下: 4 帮助文档:man命令使用的帮助文档: 编译安装 1 安装G ...

  5. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令 1. 安装一个rpm包 rpm –ivh 包名 "-i" : 安装的意思 "-v" : 可视化 "-h" : 显示安装进度 ...

  6. python源码包安装_源码包安装python2.7.6和ipython1.2.1

    1. CentOS 6.X的安装就不多说 2.安装包Python2.7.6 和Ipython的下载官网都有,自行下载. 注意,不要去卸载系统自带的python程序,在CentOS6.X中python为 ...

  7. linux安装pgsql源码包解压,在Linux(centos)中使用源码安装pgRouting

    目录 一.解压pgRouting 二.配置PostgreSQL的环境变量 三.编译源代码 四.测试 由于pgRouting依赖于PostGIS和PostgreSQL,所以阅读本文之前,务必请先阅读: ...

  8. mysql5.6.39编译安装_源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!...

    1.切换到src目录 cd /usr/local/src/ 2. 下载mysql免编译二进制包 免编译的mysql二进制包5.6源码包: wget http://mirrors.163.com/mys ...

  9. centos编译安装php7_centos7源码安装php7.2

    centos7源码安装方式安装搭建php7.2环境. 一.php7.2源码包官网下载wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz ...

  10. mysql国内源码安装,mysql 源码包安装

    mysql 源码包安装 #downloads 不同的mysql rpm包介绍: MySQL-devel:mysql开发包.针对mysql进行二次开发使用 MySQL-embedded:嵌入式环境使用的 ...

最新文章

  1. 定义主程序matlab,MATLAB 主程序和子程序之间的问题 子程序出错
  2. springmvc请求参数异常处理
  3. C#面试题整理(不带答案)
  4. 一键清除 打印机内无法清除作业
  5. 树莓派连接usb手机_树莓派03 - 树莓派的VNC连接
  6. PCL—低层次视觉—点云滤波(基于点云频率)
  7. 删除了几个月的照片能找回么_iPhone的相册管理功能居然这么强大?删掉的照片还能这样找回?...
  8. python二维数组初始化_如何在Python中初始化二维数组?
  9. java md5方法 for Android
  10. flume学习(六):如何使用event header中的key值
  11. Access2016学习9
  12. python + selenium 之网银爬虫
  13. http://coffeejp.com/bbs/forum.php?mod=viewthread,问题列表_华泰证券网络路演_新浪网
  14. laravel实现短信验证码功能
  15. 坦克大战(Tank Battalion)------Java代码实现
  16. Android Keep screen on(保持屏幕唤醒)
  17. 谷歌浏览器恐龙游戏开挂秘诀
  18. 如何通俗理解并快速写出麦克斯韦方程组?
  19. 科研写作——常见句式(五)
  20. QML地图中使用MapItemView

热门文章

  1. 彻底删除VMware !!!
  2. RequestBody Ajax写法
  3. centos 7.7.1908上隐藏顶栏和任务栏
  4. 矩阵乘法(幂次计算)
  5. android反编译apk命令,APK反编译关键命令及步骤
  6. 高级电工、模电、数电、电力拖动实验室成套设备
  7. python pytz模块_python pytz
  8. UE4 蓝图实现AI随机移动
  9. 圆你的大厂梦!字节跳动Java高频面试题真题一二三面常见问题
  10. Microchip PIC系列8位单片机入门教程(七)PWM