「實戰」除了 X86,如何在 ARM 架構服務器上編譯 Greenplum

Greenplum 是一款全球領先的開源大數據平臺,爲全球各行各業提供具有實時處理、彈性擴容、彈性計算、混合負載、雲原生和集成數據分析能力的強大的大數據引擎,目前普遍的應用於包括金融、保險、證券、通訊、航空、物流、零售、媒體、政府、醫療、製造、能源等行業。python

目前 Greenplum 的二進制發行版本只能運行在 X86 服務器。不管是 Greenplum 的官方開發商 Pivotal 公司,仍是其餘 Greenplum 發行商,都沒有提供 Greenplum 的 ARM 發行版。不過,Greenplum 是開源軟件,咱們能夠經過編譯 Greenplum 源代碼自行構建 Greenplum 的 ARM 版本。linux

本文將詳細講述如何在 ARM 服務器上編譯並運行開源版 Greenplum。git

環境準備

編譯環境:CentOS 7.X。github

  • 安裝 EPEL 軟件庫
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum makecache
  • 關閉防火牆
# systemctl stop firewalld# systemctl disable firewalld
  • 配置Linux內核,修改 /etc/sysctl.conf 文件,添加下列內容
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
  • 修改 /etc/security/limits.conf 文件
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
  • 關閉 SELinux,編輯 /etc/selinux/config
# 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
  • 建立gpadmin用戶
# 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
  • 使用 gpadmin 登入,配置 ssh 免密碼登陸
$ ssh-keygen -t rsa 
$ ssh-copy-id -i ~/.ssh/id_rsa gpadmin@localhost

編譯源代碼

  • 下載 Greenplum 源代碼
$ 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

相關文章
相關標籤/搜索