日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

centos7 geenplum5.x postgis开源版本编译

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos7 geenplum5.x postgis开源版本编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載5.1
https://codeload.github.com/greenplum-db/gpdb/tar.gz/5.1.0

基礎環境

tar xzvf gpdb-5.1.0.tar.gz
cd gpdb-5.1.0
參照README.md、README.amazon_linux準備依賴
yum install -y epel-release
yum install -y python-pip
sudo yum -y install git gcc readline-devel zlib-devel libcurl-devel bzip2-devel bison flex gcc-c++ python-devel openssl-devel libffi-devel libapr-devel libevent-devel
sudo yum -y install perl-ExtUtils-MakeMaker.noarch perl-ExtUtils-Embed.noarch
sudo yum -y install apr-util-devel libxml2-devel libxslt-devel
yum install -y unzip

sudo pip install --upgrade setuptools wheel paramiko pip lockfile psutil

https://github.com/greenplum-db/gp-xerces
下載下來解壓
cd gp-xerces
mkdir build
cd build
…/configure
make install
cd …/…/

yum install -y cmake3 ninja-build
sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake
https://github.com/greenplum-db/gporca

git clone https://github.com/greenplum-db/gporca.git --depth 1

git config --global http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

git clone --branch v2.46.6 https://github.com/greenplum-db/gporca.git --depth 1

cd gporca
mkdir build
cd build

cmake -GNinja …
ninja-build install
cd …/…/

vi /etc/ld.so.conf
添加
/usr/local/lib
#運行
ldconfig

編譯
./configure --with-openssl --with-libxml --with-libxslt --with-python --with-perl

報錯,提示ORCA版本要2.46
checking Checking ORCA version… configure: error: Your ORCA version is expected to be 2.46.XXX

make
make install

編譯通過
重新編譯需要先make clean再make

部署
#修改配置
sudo bash -c 'cat >> /etc/sysctl.conf <<-EOF
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 500 1024000 200 4096
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.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.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

EOF’

sudo bash -c 'cat >> /etc/security/limits.conf <<-EOF

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 131072
  • hard nproc 131072

EOF’

. /usr/local/gpdb/greenplum_path.sh

cd /usr/local/gpdb/
mkdir conf
cd conf

cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_test .
mkdir -p /data/gpdb/primary
mkdir -p /data/gpdb/mirror
mkdir -p /data/gpdb/master

hostnamectl set-hostname gpc
vi /etc/hosts
添加
192.168.81.153 gpc

vi hostfile_gpinitsystem
添加
gpc

#gpssh-exkeys -h gpc

vi gpinitsystem_test
修改
declare -a DATA_DIRECTORY=(/data/gpdb/primary /data/gpdb/primary)
declare -a MIRROR_DATA_DIRECTORY=(/data/gpdb/mirror /data/gpdb/mirror)
MASTER_DIRECTORY=/data/gpdb/master
MASTER_HOSTNAME=gpc
MACHINE_LIST_FILE=/usr/local/gpdb/conf/hostfile_gpinitsystem

添加用戶
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo “gpadmin” | passwd --stdin gpadmin
賦權
chown -R gpadmin:gpadmin /data/gpdb
chown -R gpadmin:gpadmin /usr/local/gpdb

開啟ssh
vi /etc/ssh/sshd_config
RSAAuthentication yes #開啟私鑰驗證
PubkeyAuthentication yes #開啟公鑰驗證

su - gpadmin
cd ~
ssh-keygen -t rsa -P ‘’
cat /home/gpadmin/.ssh/id_rsa.pub >> /home/gpadmin/.ssh/authorized_keys
chmod 700 .ssh/authorized_keys

接重啟ssh服務(使用root用戶)
sudo systemctl restart sshd.service

登錄
su - gpadmin

cd /usr/local/gpdb/conf/

gpssh -f /usr/local/gpdb/conf/hostfile_gpinitsystem -e -v "cat >> /home/gpadmin/.bashrc <<EOF

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdb/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gp_sydb
EOF"

source ~/.bashrc

#初始化數據庫
gpinitsystem -c gpinitsystem_test

初始化失敗需要重新來
rm -rf /data/gpdb/*
mkdir -p /data/gpdb/primary
mkdir -p /data/gpdb/mirror
mkdir -p /data/gpdb/master

提示有/tmp/.s.PGSQL.19000.lock類似名稱的鎖文件,要將文件刪除
rm -rf /tmp/.s.PGSQL.*

gpinitsystem -c gpinitsystem_test
直到出現成功提示
20191223:16:48:30:002485 gpinitsystem:gpc:gpadmin-[WARN]😗******************************************************
20191223:16:48:30:002485 gpinitsystem:gpc:gpadmin-[INFO]:-Greenplum Database instance successfully created
20191223:16:48:30:002485 gpinitsystem:gpc:gpadmin-[INFO]:-------------------------------------------------------

此時就可以登錄數據庫
psql -d postgres
#查詢數據庫
\l
#設置gpadmin遠程密碼
alter user gpadmin encrypted password ‘gpadmin’;

修改master的pg_hba.conf
pg_hba.conf是控制數據庫訪問的文件

vi $MASTER_DATA_DIRECTORY/pg_hba.conf
host all gpadmin 0.0.0.0/0 md5
執行gpstop -u使配置生效

關閉防火墻
systemctl stop firewalld
systemctl disable firewalld

使用客戶端通過5432端口連接postgresql數據庫即可

postgis各種依賴
依賴安裝
yum install -y gdal-devel
下載編譯libgeos

yum install -y wget
wget http://download.osgeo.org/geos/geos-3.8.0.tar.bz2
yum install -y bzip2
tar jxf geos-3.8.0.tar.bz2
#編譯
./configure -prefix=/usr/local/geos && make && make install

下載編譯proj4

wget http://download.osgeo.org/proj/proj-4.9.3.tar.gz #http://download.osgeo.org/proj/proj-6.2.1.tar.gz 注意項目需要的是4.x,其他版本不可用
tar zxf proj-4.9.3.tar.gz
cd proj-4.9.3

yum install -y libsqlite3x-devel
./configure -prefix=/usr/local/proj4 && make && make install

將編譯好的依賴包拷貝到運行目錄中
方便數據庫的整體拷貝
cp -rd /usr/local/proj4/lib/* /usr/local/gpdb/lib
cp -rd /usr/local/geos/lib/* /usr/local/gpdb/lib
cp -rd /usr/local/lib/* /usr/local/gpdb/lib
cp -rd /usr/lib64/libevent* /usr/local/gpdb/lib
cp -rd /usr/lib64/libapr* /usr/local/gpdb/lib

postgis編譯
git clone https://github.com/greenplum-db/postgis.git --depth 1

vi /etc/ld.so.conf
添加
/usr/local/gpdb/lib
#運行
ldconfig
編譯
./configure --with-pgconfig=/usr/local/gpdb/bin/pg_config --with-geosconfig=/usr/local/geos/bin/geos-config --with-projdir=/usr/local/proj4

源碼編譯過程中有一處報錯
vi postgis/Makefile
修改內容
$(SQL_OBJS): %.in: %.in.c
$(SQLPP) -I…/libpgcommon -I/usr/local/gpdb/include $< | grep -v ‘^#’ > $@

make&& make install

編譯完成后
/usr/local/gpdb/share/postgresql/contrib/postgis-2.0/
會有這個目錄

下載非開源gp官網的postgis-2.1.5+pivotal.1-gp5-rhel7-x86_64.gppkg,一層層zip、tar解壓打開,找到postgis.rpm中的./temp/share/postgresql/contrib/postgis-2.1/postgis_manager.sh
參照著寫一個
cd /usr/local/gpdb/share/postgresql/contrib/postgis-2.0
vi postgis_manager.sh
#!/bin/bash -l

if [ “$2” = “install” ]
then
psql -d $1 -f $GPHOME/share/postgresql/contrib/postgis-2.0/postgis.sql;
psql -d $1 -f $GPHOME/share/postgresql/contrib/postgis-2.0/rtpostgis.sql;

psql -d $1 -f $GPHOME/share/postgresql/contrib/postgis-2.0/postgis_comments.sql;

psql -d $1 -f $GPHOME/share/postgresql/contrib/postgis-2.0/raster_comments.sql; psql -d $1 -f $GPHOME/share/postgresql/contrib/postgis-2.0/spatial_ref_sys.sql;

else
echo “Invalid option. Please try install, upgrade or uninstall”
fi

啟用某數據庫的postgis
chmod 777 -R postgis_manager.sh
$GPHOME/share/postgresql/contrib/postgis-2.0/postgis_manager.sh mydatabase install

安裝成功后,庫中會出現spatial_ref_sys表

整個包壓縮,準備拿到集群上安裝嘗試
tar cvzf gpdb-bin-5.1.tar.gz /usr/local/gpdb/

總結

以上是生活随笔為你收集整理的centos7 geenplum5.x postgis开源版本编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。