Greenplum 是一款开源MPP数据分析平台,提供包括数据分析、机器学习和人工智能等特色功能。目前 Greenplum 的二进制发行版本只能运行在 X86 服务器。github上的Greenplum releases只有x86的发行版,没有提供ARM 发行版。Greenplum 是开源软件,我们可以通过编译 Greenplum 源代码自行构建 Greenplum 的 ARM 版本。

本文将详细讲述如何在 ARM 服务器上编译并打包开源版 Greenplum。

编译环境:CentOS Linux release 7.6.1810 (AltArch)

需要提前准备OS镜像、python依赖包、cmake、zstd-dev、Xerces、re2c、ninja、gporca等源码包配置编译环境,另外Greenplum编译需要Greenplum源码包。

  • setuptools https://pypi.org/project/setuptools/33.1.1/#files
  • psutil-5.7.2 https://pypi.org/project/psutil/#files
  • pbr-5.4.5 https://pypi.org/project/pbr/#files
  • lockfile-0.12.2 https://pypi.org/project/lockfile/#files
  • pycparser-2.20 https://pypi.org/project/pycparser/#files
  • cffi-1.14.1 https://pypi.org/project/cffi/#files
  • bcrypt-3.1.7 https://pypi.org/project/bcrypt/#files
  • six-1.15.0 https://pypi.org/project/six/#files
  • PyNaCl-1.4.0 https://pypi.org/project/PyNaCl/#files
  • cryptography-3.0 https://pypi.org/project/cryptography/#files
  • ipaddress-1.0.23 https://pypi.org/project/ipaddress/#files
  • enum34-1.1.10 https://pypi.org/project/enum34/#files
  • paramiko-2.7.1 https://pypi.org/project/paramiko/#files
  • epydoc-3.0.1 https://pypi.org/project/epydoc/#files
  • cmake-3.9.2 https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
  • zstd-dev-1.4.5 https://github.com/facebook/zstd
  • Xerces-3.1.2-p1 https://github.com/greenplum-db/gp-xerces
  • re2c-2.0 https://github.com/skvadrik/re2c
  • ninja-1.10.0 https://github.com/ninja-build/ninja
  • gporca-3.106.1 https://github.com/greenplum-db/gporca/tree/v3.65.3
  • Greenplum-6.9.1 https://github.com/greenplum-db/gpdb/releases/download/6.9.1/6.9.1-src-full.tar.gz

下载并上传如下软件包到服务器上:

bcrypt-3.1.7.tar.gz

cffi-1.14.1.tar.gz

cryptography-3.0.tar.gz

enum34-1.1.10.tar.gz

epydoc-3.0.1.zip

gporca-3.106.1.tar.gz

gp-xerces-3.1.2-p1.tar.gz

greenplum-6.9.1-src-full.tar.gz

ipaddress-1.0.23.tar.gz

lockfile-0.12.2.tar.gz

ninja-1.10.0.tar.gz

paramiko-2.7.1.tar.gz

pbr-5.4.5.tar.gz

psutil-5.7.2.tar.gz

pycparser-2.20.tar.gz

PyNaCl-1.4.0.tar.gz

re2c-2.0.tar.gz

setuptools-33.1.1.zip

six-1.15.0.tar.gz

zstd-1.4.5.tar.gz

安装依赖包。

#yum -y install curl-devel bzip2-devel python-devel openssl-devel readline-devel perl-ExtUtils-Embed libxml2-devel openldap-devel pam pam-devel perl-devel apr-devel libevent-devel libyaml libyaml-devel libedit-devel libffi-devel

安装python依赖包:

安装setuptools

#cd setuptools-master

#python bootstrap.py

#python setup.py install

安装psutil

#cd psutil-5.7.2

#python setup.py install

安装pbr

#cd pbr-5.4.5

#python setup.py install

安装lockfile

#cd lockfile-0.12.2

#python setup.py install

安装pycparser

#cd pycparser-2.20

#python setup.py install

安装cffi

#cd cffi-1.14.1

#python setup.py install

安装six

#cd six-1.15.0

#python setup.py install

安装bcrypt

#cd bcrypt-3.1.7

#python setup.py install

安装PyNaCl

#cd PyNaCl-1.4.0

#python setup.py install

安装ipaddress

#cd ipaddress-1.0.23

#python setup.py install

安装enum34

#cd enum34-1.1.10

#python setup.py install

安装cryptography

#cd cryptography-3.0

#python setup.py install

安装paramiko

#cd paramiko-2.7.1

#python setup.py install

安装epydoc

#cd epydoc-3.0.1

#python setup.py install

安装cmake

#cd cmake-3.9.2

#./bootstrap

#make

#make install

#/usr/local/bin/cmake --version

cmake version

安装zstd

#cd zstd-1.4.5

#make

#make install

安装Xerces

# cd gp-xerces-3.1.2-p1

#./configure

#make

#make install

安装re2c

# cd re2c-2.0

#./autogen.sh

#./configure

#make

#make install

安装ninja

#cd ninja-1.10.0

#./configure.py --bootstrap

#cp ninja /usr/bin/

安装gporca

# cd gporca-3.106.1

#cmake -GNinja -H. -Bbuild

#vi libgpos/src/common/CStackDescriptor.cpp

第167行注释掉

backtrace

#ninja install -C build

#echo /usr/local/lib >/etc/ld.so.conf

#ldconfig

编译greenplum6.9.1

准备完成后可以编译greenplum6.9.1了

# cd gpdb_src/

#./configure --with-perl --with-python --with-libxml --prefix=/usr/local/gpdb

#make

greenplum make

如果make成功了,就可以开始制作rpm安装包了。

安装rpm-build

yum install rpm-build

在/root目录下建rpmbuild目录

mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/RPMS ~/rpmbuild/BUILDROOT ~/rpmbuild/SRPMS ~/rpmbuild/SOURCES ~/rpmbuild/SPECS

编辑greenplum6.9.1.spec

vi ~/rpmbuild/SPECS/greenplum6.9.1.spec

gp spec

修改greenplum源代码目录名为greenplum-6.9.1并压缩:

mv gpdb_src greenplum-6.9.1

tar czvf greenplum-6.9.1.tar.gz greenplum-6.9.1

把greenplum源码包复制到rpmbuild源代码目录

cp greenplum-6.9.1.tar.gz ~/rpmbuild/SOURCES/

制作rpm安装包:

rpmbuild -ba ~/rpmbuild/SPECS/greenplum6.9.1.spec

rpmbuild完成

查看制作好的rpm安装包:

rpmfile

完。

cmake 版本 arm_在 ARM 架构服务器上编译 Greenplum6并制作rpm安装包相关推荐

  1. zstd安装_在ARM架构服务器上编译Greenplum6并制作rpm安装包

    刘雪柏 诺基亚东软通信有限公司 高级软件工程师从事数据库相关工作aiden.liu@qq.com Greenplum 是一款开源MPP数据分析平台,提供包括数据分析.机器学习和人工智能等特色功能.目前 ...

  2. arm放弃服务器芯片,ARM溃败:Applied Micro拆分ARM架构服务器芯片业务

    上月下旬通信芯片厂商MACOM达成最终协议以约7.7亿美元收购Applied Micro,日前则已决定只留下后者的高速载波和数据中心连网芯片业务,分拆它的ARM架构服务器芯片业务,这对ARM在服务器芯 ...

  3. 在英特尔架构服务器上构建基于矢量包处理(VPP)的快速网络协议栈

    在英特尔®架构服务器上使用矢量包处理(VPP)构建快速的网络栈 Build a Fast Network Stack with Vector Packet Processing (VPP) on an ...

  4. 80核处理器_华为首款Arm架构服务器CPU鲲鹏920发布:64核主频2.6GHz ,性能创纪录!...

    2019年1月7日,华为正式推出业界最高性能Arm架构服务器芯片--鲲鹏920(Kunpeng 920),以及基于鲲鹏920的三款TaiShan服务器.华为云服务.同华为还宣布携手产业伙伴推动Arm的 ...

  5. 拆服务器芯片,ARM溃败:Applied Micro拆分ARM架构服务器芯片业务

    上月下旬通信芯片厂商MACOM达成最终协议以约7.7亿美元收购Applied Micro,日前则已决定只留下后者的高速载波和数据中心连网芯片业务,分拆它的ARM架构服务器芯片业务,这对ARM在服务器芯 ...

  6. 中国芯片开创了ARM架构服务器芯片市场,高通如今希望跟着喝汤

    据称美国手机芯片企业高通计划再次进入服务器芯片市场,以ARM架构服务器芯片争取客户,这是它在两年多前失败之后再次进入,可能是因为它看到了中国芯片企业已成功打开局面,希望跟着喝汤. ARM阵营进入服务器 ...

  7. System.Data.SqlClient.SqlError: 该数据库是在运行版本 8.00.0194 的服务器上备份

    1.错误描述 标题: Microsoft SQL Server Management Studio ------------------------------还原数据库"cmp" ...

  8. 在甲骨文云ARM VPS上使用宝塔导致php安装不完整的解决方法/ARM架构服务器使用宝塔可能遇见的问题的解决方法/Oracle Linux8/dns_get_record()/mime_conten

    去我的博客查看本文:在甲骨文云ARM VPS上使用宝塔导致php安装不完整的解决方法 – 星笙月煜 (iocky.com) 主机信息:Oracle Cloud的免费VPS(4+24,Ampere,AR ...

  9. arm 服务器优势,零的突破 戴尔正式宣布基于ARM架构服务器

    ARM架构的CPU一般出现在我们的手机.平板.机顶盒或者电视里面,但在不久之后,它们会大踏步迈入一个新的领域--服务器.计算中心.甚至超级计算机. 早在2月份,戴尔就暗示自己正在和ARM一起,测试基于 ...

最新文章

  1. YOLOv5在最新OpenVINO 2021R02版本的部署与代码演示详解
  2. linux学习笔记四:安装lsusb
  3. androidstudio调试android 源码 jni,在android studio下配置gradle用ndk-build和ndk-gbd编译调试JNI...
  4. QAQorz的训练记录
  5. win10打字突然变成繁体
  6. oracle中rownum和row_number()的区别
  7. 网易游戏java_2019秋招|网易游戏一面面经(Java开发)
  8. android 7.1 上wifi 热点 上的接口变化
  9. 金庸笔下的良好代码风格
  10. 第二阶段冲刺第八天,6月7日。
  11. 正则表达式之位置匹配
  12. 现代通信原理10.2:采用匹配滤波器的数字基带传输系统误码性能分析
  13. Raki的统计学习方法笔记0xB(11)章:条件随机场
  14. FFT蝶形算法,IFFT
  15. 后缀树 c++代码实现
  16. linux 回收站恢复文件怎么恢复文件,清空回收站后如何恢复已被删除的文件?
  17. Java8日期类型常见用法总结
  18. [Android Studio] 添加Override/Implement methods
  19. 【Unity2D入门教程】简单制作一个弹珠游戏之制作场景①(开场,结束,板子,球)
  20. 如何在word中的方框中打勾

热门文章

  1. 图形上下文的栈操作(保存和恢复)
  2. open***在Windows客户端权限那些事
  3. python caffe 在师兄的代码上修改成自己风格的代码
  4. 服务器中加速BIOS启动的方法
  5. puppet自动化运维之puppet的资源基础知识
  6. 深入剖析Android系统
  7. 位置相关属性offset(),position(),scrollTop()等
  8. 组播技术中IP地址到MAC地址的映射
  9. asp.net中page对象生命周期和各事件执行顺序
  10. 数据同步关于去除乱码插入mysql数据库