热门标签 | 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/


推荐阅读
  • 本文详细介绍了如何在Python3环境中配置Appium1.4.6,并指导如何连接模拟器进行自动化测试。通过本文,您将了解从环境搭建到模拟器连接的完整流程。 ... [详细]
  • 本文介绍如何使用特定的软件环境配置来捕获和解码通过GZIP压缩的数据包。请注意,不同的软件版本可能会导致操作步骤或结果有所差异。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • 1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是 ... [详细]
  • 本文详细介绍如何在 Windows 环境下安装 Ubuntu 12.04 版本的 Linux 操作系统,包括必要的软件下载、配置步骤以及注意事项。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • matlab gamma函数_MATLAB做晶体结构图(固体物理)
    写在前面最近在复习考研复试《固体物理》这一门课,去年学的内容已经忘干净了,所以就翻开前几页。突然看到了面心立方和体心立方结构图,想到了去年 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • Flowable系列教程:运用ProcessEngineConfigurator实现高级流程引擎配置
    本文探讨了通过ProcessEngineConfigurator接口实现对Flowable流程引擎的高级配置方法。这种方法允许开发者通过自定义配置器来增强或修改流程引擎的行为。 ... [详细]
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社区 版权所有