编译安装Greenplum源码包
文章目录
- 概述
- 下载源码包
- 安装一些常用的依赖
- 安装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.
获取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
给个友情链接。
编译安装Greenplum源码包相关推荐
- 源码包安装mysql_源码包安装MySQL
MySQL安装方式 1.二进制安装2.源码包安装3.rpm包安装 一.源码包安装 源码包安装比较繁琐,但是更加灵活,可以按自己需求配置 1.下载源码包 [root@db03~]# wget https ...
- php 7.0 编译安装mysql_源码编译安装php7.0.5
源码编译安装php7.0.5 源码包下载地址 安装epel扩展yum源 [root@xuegod63 ~]# yum clean all [root@xuegod63 ~]# yum list 注:R ...
- Linux下载安装一个源码包
下载一个安装包除了yum和rpm之外我们还可以下载源码包 编译并安装 首先下载所有的源码包一定要去官网,为了就是防止源码包被第三方编译 例如我们今天安装一个httpd的源码包,也就是经常说的apach ...
- 编译安装C源码程序程序
编译安装 程序的组成部分 1 二进制文件:可运行的程序文件: 2 库文件:lib目录下的文件: 3 配置文件:一般位于/etc/目录下: 4 帮助文档:man命令使用的帮助文档: 编译安装 1 安装G ...
- Linux学习笔记15—RPM包的安装OR源码包的安装
RPM安装命令 1. 安装一个rpm包 rpm –ivh 包名 "-i" : 安装的意思 "-v" : 可视化 "-h" : 显示安装进度 ...
- python源码包安装_源码包安装python2.7.6和ipython1.2.1
1. CentOS 6.X的安装就不多说 2.安装包Python2.7.6 和Ipython的下载官网都有,自行下载. 注意,不要去卸载系统自带的python程序,在CentOS6.X中python为 ...
- linux安装pgsql源码包解压,在Linux(centos)中使用源码安装pgRouting
目录 一.解压pgRouting 二.配置PostgreSQL的环境变量 三.编译源代码 四.测试 由于pgRouting依赖于PostGIS和PostgreSQL,所以阅读本文之前,务必请先阅读: ...
- 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 ...
- centos编译安装php7_centos7源码安装php7.2
centos7源码安装方式安装搭建php7.2环境. 一.php7.2源码包官网下载wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz ...
- mysql国内源码安装,mysql 源码包安装
mysql 源码包安装 #downloads 不同的mysql rpm包介绍: MySQL-devel:mysql开发包.针对mysql进行二次开发使用 MySQL-embedded:嵌入式环境使用的 ...
最新文章
- 定义主程序matlab,MATLAB 主程序和子程序之间的问题 子程序出错
- springmvc请求参数异常处理
- C#面试题整理(不带答案)
- 一键清除 打印机内无法清除作业
- 树莓派连接usb手机_树莓派03 - 树莓派的VNC连接
- PCL—低层次视觉—点云滤波(基于点云频率)
- 删除了几个月的照片能找回么_iPhone的相册管理功能居然这么强大?删掉的照片还能这样找回?...
- python二维数组初始化_如何在Python中初始化二维数组?
- java md5方法 for Android
- flume学习(六):如何使用event header中的key值
- Access2016学习9
- python + selenium 之网银爬虫
- http://coffeejp.com/bbs/forum.php?mod=viewthread,问题列表_华泰证券网络路演_新浪网
- laravel实现短信验证码功能
- 坦克大战(Tank Battalion)------Java代码实现
- Android Keep screen on(保持屏幕唤醒)
- 谷歌浏览器恐龙游戏开挂秘诀
- 如何通俗理解并快速写出麦克斯韦方程组?
- 科研写作——常见句式(五)
- QML地图中使用MapItemView