Greenplum 是一款全球领先的开源大数据平台,为全球各行各业提供具有实时处理、弹性扩容、弹性计算、混合负载、云原生和集成数据分析能力的强大的大数据引擎,目前普遍的应用于包括金融、保险、证券、通讯、航空、物流、零售、媒体、政府、医疗、制造、能源等行业。python
目前 Greenplum 的二进制发行版本只能运行在 X86 服务器。不管是 Greenplum 的官方开发商 Pivotal 公司,仍是其余 Greenplum 发行商,都没有提供 Greenplum 的 ARM 发行版。不过,Greenplum 是开源软件,咱们能够经过编译 Greenplum 源代码自行构建 Greenplum 的 ARM 版本。linux
本文将详细讲述如何在 ARM 服务器上编译并运行开源版 Greenplum。git
编译环境:CentOS 7.X。github
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum makecache
# systemctl stop firewalld# systemctl disable firewalld
kernel.shmmni = 4096 kernel.shmall = 4000000000 kernel.sem = 250 512000 100 2048 kernel.sysrq = 1 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.msgmni = 2048 net.ipv4.tcp_syncookies = 1 net.ipv4.ip_forward = 0 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.conf.defalut.arp_filter = 1 net.ipv4.ip_local_port_range = 1025 65535 net.core.netdev_max_backlog = 10000 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 vm.overcommit_memory = 2
* soft nofile 524288 * hard nofile 524288 * soft nproc 131072 * hard nproc 131072
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
# useradd gpadmin # passwd gpadmin
# yum groupinstall 'Development Tools' # GCC, libtools etc # yum install curl-devel bzip2-devel python-devel openssl-devel readline-devel perl-ExtUtils-Embed libxml2-devel perl-devel zstd git # wget https://bootstrap.pypa.io/get-pip.py # python get-pip.py # pip install psutil lockfile paramiko setuptools epydoc conan
# reboot
$ ssh-keygen -t rsa $ ssh-copy-id -i ~/.ssh/id_rsa gpadmin@localhost
$ git clone https://github.com/greenplum-db/gpdb
$ cd gpdb $ git checkout 6X_STABLE #假设编译6.X版本 $ CFLAGS="-O0 -g3 -ggdb3" \ ./configure --with-perl --with-python --with-libxml --enable-debug --enable-cassert \ --disable-orca --disable-gpcloud --disable-gpfdist \ --disable-gpfdist $ make $ sudo make install
编译安装完成数据库
因而可知,Greenplum 做为一款为通用平台设计的 MPP 数据库,在 ARM 服务器上的编译安装流程和在普通 X86 服务器上几乎没有区别,感兴趣的小伙伴能够自行在 ARM 服务器上尝试一下 Greenplum 的编译。bootstrap