热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos7geenplum5.xpostgis开源版本编译

下载5.1https:codeload.github.comgreenplum-dbgpdbtar.gz5.1.0基础环境tarxzvfgpdb-5.1.0.tar.gzcdg

下载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 &#39;cat >> /etc/sysctl.conf <<-EOF
kernel.shmmax &#61; 500000000
kernel.shmmni &#61; 4096
kernel.shmall &#61; 4000000000
kernel.sem &#61; 500 1024000 200 4096
kernel.sysrq &#61; 1
kernel.core_uses_pid &#61; 1
kernel.msgmnb &#61; 65536
kernel.msgmax &#61; 65536
kernel.msgmni &#61; 2048
net.ipv4.tcp_synCOOKIEs &#61; 1
net.ipv4.ip_forward &#61; 0
net.ipv4.conf.default.accept_source_route &#61; 0
net.ipv4.tcp_tw_recycle &#61; 1
net.ipv4.tcp_max_syn_backlog &#61; 4096
net.ipv4.conf.all.arp_filter &#61; 1
net.ipv4.ip_local_port_range &#61; 1025 65535
net.core.netdev_max_backlog &#61; 10000
net.core.rmem_max &#61; 2097152
net.core.wmem_max &#61; 2097152
vm.overcommit_memory &#61; 2

EOF’

sudo bash -c &#39;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&#61;(/data/gpdb/primary /data/gpdb/primary)
declare -a MIRROR_DATA_DIRECTORY&#61;(/data/gpdb/mirror /data/gpdb/mirror)
MASTER_DIRECTORY&#61;/data/gpdb/master
MASTER_HOSTNAME&#61;gpc
MACHINE_LIST_FILE&#61;/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 <

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY&#61;/data/gpdb/master/gpseg-1
export GPPORT&#61;5432
export PGDATABASE&#61;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类似名称的锁文件&#xff0c;要将文件删除
rm -rf /tmp/.s.PGSQL.*

gpinitsystem -c gpinitsystem_test
直到出现成功提示
20191223:16:48:30:002485 gpinitsystem:gpc:gpadmin-[WARN]&#x1f617;******************************************************
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&#61;/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&#xff0c;其他版本不可用
tar zxf proj-4.9.3.tar.gz
cd proj-4.9.3

yum install -y libsqlite3x-devel
./configure -prefix&#61;/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&#61;/usr/local/gpdb/bin/pg_config --with-geosconfig&#61;/usr/local/geos/bin/geos-config --with-projdir&#61;/usr/local/proj4

源码编译过程中有一处报错
vi postgis/Makefile
修改内容
$(SQL_OBJS): %.in: %.in.c
$(SQLPP) -I…/libpgcommon -I/usr/local/gpdb/include $<| grep -v ‘^#’ > $&#64;

make&& make install

编译完成后
/usr/local/gpdb/share/postgresql/contrib/postgis-2.0/
会有这个目录

下载非开源gp官网的postgis-2.1.5&#43;pivotal.1-gp5-rhel7-x86_64.gppkg&#xff0c;一层层zip、tar解压打开&#xff0c;找到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” &#61; “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

安装成功后&#xff0c;库中会出现spatial_ref_sys表

整个包压缩&#xff0c;准备拿到集群上安装尝试
tar cvzf gpdb-bin-5.1.tar.gz /usr/local/gpdb/


推荐阅读
  • modulepaddle.fluidhasnoattributedata解决:pipinstallpaddlepaddle-gpu1.7.0.post107-ih ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • Howtobuilda./configure&&make&&makeins ... [详细]
  • linux下编译安装lnmp
    2019独角兽企业重金招聘Python工程师标准#######################安装依赖#####################安装必要的包:y ... [详细]
author-avatar
呀yuan-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有