超实用干货(1)-Apache greenplum在aarch64架构体系的适配编译
编译环境
操作系统:EulerOS 2.0 sp8
● 内核:4.19.36
● CPU:aarch64
编译所需软件类别
cmake-3.23.0-rc1.tar.gz
下载地址:
https://cmake.org/files/v3.23/cmake-3.23.0-rc1.tar.gz
gp-xerces-3.1.2-p1.zip
下载地址:
https://github.com/greenplum-db/gp-xer ces/archive/refs/tags/v3.1.2-p1.zip
ninja-1.10.2.zip
下载地址:
https://github.com/ninja-build/ninja/archive /refs/tags/v1.10.2.zip
re2c-3.0.zip
下载地址:
https://github.com/skvadrik/re2c/archive/refs/ta gs/3.0.zip
zstd-1.5.2.tar.gz
下载地址:
https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
配置yum源,并安装如下依赖包
autoconf
automake
libtool
gcc
curl-devel
bzip2-devel
python-devel
openssl-devel
readline-devel
perl-ExtUtils-Embed
libxml2-devel
openldap-devel
pam
pam-devel
apr-devel
libevent-devel
libyaml
libyaml-devel
libedit-devel
libffi-devel
bison
flex
flex-devel
安装python依赖包
# 使⽤pip 进⾏python包管理,命令如下:
pip install --upgrade pip
pip install --no-cache-dir lockfile paramiko setuptools psutil conan
逐个安装软件列表内容
可以根据每个软件的readme⽂件进⾏安装
编译
编译GreenPlum 需要cmake和gcc,在上⾯操作中已经配置完成,开始前可通过如下命令进⾏确认
检查gcc版本
[root@RI_BDTL ~]# gcc --version
gcc (GCC) 7.3.0
检查cmake版本
[root@RI_BDTL ~]# cmake --version
cmake version 3.23.0-rc1
准备源码包
6.19.1-src-full.tar.gz
下载地址:
https://github.com/greenplum-db/gpdb/releases/download/6.19.1/ 6.19.1-src-full.tar.gz
修改源码 (6.19.1源码中没有对平台判断,修改为aarch64⽀持的指令)
[root@RI_BDTL packages]# tar -zxvf 6.19.1-src-full.tar.gz
[root@RI_BDTL packages]# vi gpdb_src/src/backend/gporca/libgpos/includ e/gpos/utils.h
修改 gpdb_src/src/backend/gporca/libgpos/include/gpos/utils.h 中22⾏和23⾏为:
#define GPOS_ASMFP asm volatile("mov %0, fp" : "=g"(ulp));
#define GPOS_ASMSP asm volatile("mov %0, sp" : "=g"(ulp));
编译,编译命令使⽤的readme中的命令,默认是带orca编译的,这⾥通过 --enable-orca 显示指定了
[root@RI_BDTL packages]# cd gpdb_src
# Configure build environment to install at /usr/local/greenplum-6.19.1
[root@RI_BDTL gpdb_src]# export LD_LIBRARY_PATH=/usr/local/gp-xerces/l ib/ CFLAGS="-I/usr/local/gp-xerces/include" LDFLAGS="-L/usr/local/gp-x erces/lib/"
[root@RI_BDTL gpdb_src]# ./configure --enable-orca --with-perl --withpython --with-libxml --with-gssapi --prefix=/usr/local/greenplum-6.19.1
[root@RI_BDTL gpdb_src]# make -j8
[root@RI_BDTL gpdb_src]# make -j8 install
漫⻓的等待之后,出现如下提示,就说明编译成功了
Greenplum Database installation complete
查看编译结果
[root@RI_BDTL local]# ls -lrt greenplum-6.19.1/
总⽤量 32
drwx------ 3 gpadmin gpadmin 4096 2⽉ 11 15:47 docs
drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:11 share
drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:14 include
drwx------ 5 gpadmin gpadmin 4096 2⽉ 11 16:14 lib
-rw------- 1 gpadmin gpadmin 491 2⽉ 11 16:14 greenplum_path.sh
drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 libexec
drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 sbin
drwx------ 7 gpadmin gpadmin 4096 2⽉ 11 16:14 bin
总结
编译过程并不复杂,难点在于有⼀些依赖包安装的不全,导致编译不成功。
另外就是源码包6.19.1中对aarch64指令集的修改,使GreenPlum可以正常编译。
超实用干货(1)-Apache greenplum在aarch64架构体系的适配编译的更多相关文章
- Apache web服务器(LAMP架构)
Apache web服务器(LAMP架构) apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 ...
- Httpd服务进阶知识-基于Apache Modele的LAMP架构之Discuz!案例
Httpd服务进阶知识-基于Apache Modele的LAMP架构之Discuz!论坛案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装依赖包及数据库 博主推荐阅读: ...
- Httpd服务进阶知识-基于Apache Modele的LAMP架构之WordPress案例
Httpd服务进阶知识-基于Apache Modele的LAMP架构之WordPress案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装依赖包及数据库授权 博主推荐阅读 ...
- Httpd服务进阶知识-基于Apache Modele的LAMP架构之PhpMyAdmin案例
Httpd服务进阶知识-基于Apache Modele的LAMP架构之PhpMyAdmin案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见LAMP应用 PhpMyAdm ...
- [转帖]X86_64平台上利用qemu安装aarch64架构的虚拟机
X86_64平台上利用qemu安装aarch64架构的虚拟机 https://blog.csdn.net/chenxiangneu/article/details/78955462 遇到原作者一样的问 ...
- 手机CPU架构体系分类及各大厂商
手机cpu相关知识,这对于开发Android应用程序适应各个机型有一定的辅助作用 . 手机cpu架构体系分类 指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分,代表架构分别是x86.A ...
- 阿里巴巴飞天大数据架构体系与Hadoop生态系统
很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...
- 「译」JUnit 5 系列:架构体系
原文地址:http://blog.codefx.org/design/architecture/junit-5-architecture/ 原文日期:29, Mar, 2016 译文首发:Linesh ...
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...
- 分布式系统的那些事儿(六) - SOA架构体系
有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善.具体可以点击“原文链接”. 那么今天继续说分布式系统的那些事. 我们现在动 ...
随机推荐
- 使用 vite 配置目录别名
你是否被 ../ ../../ 这样的路径折磨的心力憔悴,如果你使用 vite 的话,不妨来试试 alias 命名目录吧. 安装 @types/node 来加载 path 模块 npm i @type ...
- USB gadget驱动框架(三)
gadget驱动框架(三) usb_udc与usb_gadget_driver的绑定 usb_udc与usb_gadget_driver,在注册的时候分别被添加到udc_list和gadget_dri ...
- Perfetto分析进阶
一.Perfetto介绍 Perfetto是Android Q中引入的全新下一代平台级跟踪工具,为Android.Linux和Chrome平台提供了一种通用的性能检测和跟踪分析工具集.其核心是引入了一 ...
- dotnet定义扩展方法
// 扩展方法 // 1.创建静态类静态方法 2. 在静态方法中参数中使用 this 关键字指定需要扩展的类 // 密封类 不能直接继承,通过扩展方法,拿到父类的属性和方法进行扩展补充
- 基于腾讯云短信接口和nodejs服务器实现手机号验证码
知识储备:js基础.nodejs基础.ajax基础: 1. 手机验证码原理 表单提交,把手机号码传送到后端:后端拿到手机号码后根据相关算法随机形成一个验证码,并将其保存在数据库:用户拿到验证码后将验证 ...
- 0606-nn.functional
0606-nn.functional 目录 一.nn.functional 和 nn.Module 的区别 二.nn.functional 和 nn.Module 结合使用 pytorch完整教程目录 ...
- JOI Open 2016
T1 JOIRIS 你在玩俄罗斯方块,游戏区域是一个宽度为 \(n\),高度足够大的矩形网格.初始时第 \(i\) 列有 \(a_i\) 个方块. 给定参数 \(k\),你可以做不超过 \(10^4\ ...
- RocketMQ 5.0 如何配置TLS加密传输?
本文作者:李伟,社区里大家叫小伟,Apache RocketMQ Committer,RocketMQ Python客户端项目Owner ,Apache Doris Contributor,腾讯云Ro ...
- Web渗透06_XSS
XSS漏洞描述 XSS是非常厉害的漏洞,在OWASP TOP10中榜上有名. XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网 ...
- chapter4 quantum circuits
本章内容为 P172--P215: 主机 word 文件为: chapter4.docx 详情见文件 chapter4.1_singlequbit.cdf 或主机同名文件 4.7 Simulatio ...