瞭解更多Greenplum技術乾貨,歡迎訪問Greenplum中文社區網站
Greenplum 是一款開源MPP數據分析平臺,提供包括數據分析、機器學習和人工智能等特點功能。目前 Greenplum 的二進制發行版本只能運行在 X86 服務器。github上的Greenplum releases只有x86的發行版,沒有提供ARM 發行版。Greenplum 是開源軟件,咱們能夠經過編譯 Greenplum 源代碼自行構建 Greenplum 的 ARM 版本。python
本文將詳細講述如何在 ARM 服務器上編譯並打包開源版 Greenplum。git
編譯環境:CentOS Linux release 7.6.1810 (AltArch)github
須要提早準備OS鏡像、python依賴包、cmake、zstd-dev、Xerces、re2c、ninja、gporca等源碼包配置編譯環境,另外Greenplum編譯須要Greenplum源碼包。bootstrap
下載並上傳以下軟件包到服務器上:服務器
bcrypt-3.1.7.tar.gzcurl
cffi-1.14.1.tar.gz機器學習
cryptography-3.0.tar.gz學習
enum34-1.1.10.tar.gz網站
epydoc-3.0.1.zipui
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
安裝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行註釋掉
# 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
若是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
修改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
查看製做好的rpm安裝包: