Greenplum源码编译安装教程
⼀、Greenplum⽀持的操作系统
SuSE Linux SLES 10 update
CentOS 5.0 or higher
RedHat Enterprise Linux 5.0 or higher
Mac OS 10.5 or higher
本教程的系统是CentOS 6.5,⽤了3台1核1G内存的虚拟机,⼀台⽤作master,两台⽤于segment。除了Mac OS 的配置有所区别,其他的系统可以参照本⽂进⾏部属。
强烈建议:每台虚拟机创建时使⽤gpadmin作为⽤户名,centos语⾔选择英语
⼆、参数调整
在每台虚拟机中调整如下参数:
1)编辑/f
kernel.shmall = 4000000000
p_max_syn_backlog = 4096
vm.overcommit_memory = 2
kernel.sem = 250 64000 100 512
net.ipv4.ip_local_port_range = 1025 65535
p_tw_recycle = 1
2)修改⽂件打开数限制
编辑/etc/f,添加
* soft nofile 65536
* hard nofile 65536
编辑/etc/security/limits.f,添加
* soft nproc 131072
* hard nproc 131072
3)安装前关闭防⽕墙
使⽤/sbin/chkconfig iptables off命令关闭
使⽤/sbin/chkconfig –list iptables查看防⽕墙状态,全部为off即可
修改/etc/selinux/config ⽂件
SELINUX=disabled
4)编辑/boot/f
添加elevator=deadline
三、GP源码编译安装
1)下载greenplum源码
使⽤unzip指令或者直接右键解压到/home/gpadmin⽬录下,会⽣成gpdb-master⽂件夹
2)下载依赖项
执⾏以下⼏条命令,中间选择yes安装完成即可
$ sudo yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotategcc-c++ python-py curl-devel pam
perl下载安装教程$ sudo yum install apr-devel libevent-devel libyaml-devel
$ sudo python get-pip.py
$ sudo pip install psi lockfile paramiko setuptools epydoc
$ sudo pip install --upgrade setuptools
(注:安装pip因系统原因可能会失败,可以百度其他⽅法完成安装)
3)编译安装
进⼊到刚才解压的⽬录/home/gpadmin/gpdb-master,通过prefix命令指定⽬录,这⾥我们安装在/home/gpadmin/gpsql下
$ ./configure--prefix=/home/gpadmin/gpsql --with-gssapi --with-pgport=5432--with-libedit-preferred --with-perl --with-python --with-openssl --with-pam--with-krb5 --with-ldap --with-libxml --enable-cassert --enable-debug --enable-testutils--enable-debugbreak --enable-depend
$ make
$ make install
安装完成会在/home/gpadmin/gpsql中⽣成数据库⽂件
4)检查⼀下⽂件所有者确保gpsql⽂件的所有者是gpadmin,如果不是可以通过以下命令修改(如果管理员即为gpadmin则可跳过该步)
$ ls -l    #查看⽂件权限和所有者
$ chown -R gpadmin/home/gpadmin/gpsql
$ chgrp -R gpadmin/home/gpadmin/gpsql
5)配置环境变量
参照/home/gpadmin/gpsql/greenplum_path.sh配置环境变量,使⽤
$ vi /etc/profile添加
source /home/gpadmin/gpsql/greenpum_path.sh
6)这是master主机的数据⽬录,指定数据存储位置
$ mkdir /home/gpadmin/gpmaster
然后修改环境变量指定该位置,在gpadmin⽤户下
$ sudo vi ~/.bashrc
在末尾添加
MASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpseg-1
export MASTER_DATA_DIRECTORY
保存退出之后记得source ~/.bashrc
四、在各个区段安装gp
可以在每台机器上采⽤和主机master⼀样的安装⽅法,这样的话机器⼀多了就很⿇烦,在此就不介 绍这种⽅法了;我们直接通过master主机对每台segment安装GP。
(1)对每台主机修改主机名(这个步骤我是单独到每台机器上去修改的):
修改主机名要在两个地⽅做修改:
a. /etc/hosts⽂件下:
$ vi /etc/hosts
将第⼀⾏:127.0.0.1 localhost localhost.localdomainlocalhost4 localhost4.localdomain4
改为: 127.0.0.1 localhost sdw1 localhost4 localhost4.localdomain4
(这⾥的sdw1表⽰segment1节点,其他机器类似,这⾥主节点叫mdw)
b./etc/sysconfig/network
$ vi /etc/sysconfig/network
修改HOSTNAME=mdw,如果是segment节点则为sdw1、sdw2…
2)在主节点中添加对应Segment服务器的IP与主机名
$ vi /etc/hosts
在末尾添加如下内容
主节点IP 主节点名
从节点IP 从节点名
从节点IP 从节点名
如图所⽰:
修改⽣效之后,主机名会变成mdw或者sdw1、sdw2
3)在/home/gpadmin⽬录下新建两个⽂件新建⼀个all_hosts⽂本和⼀个all_segs⽂本,编辑内容:
对all_hosts:
mdw
sdw1
sdw2
对all_segs:
sdw1
sdw2
也就是分别存储了所有节点和所有从节点的主机名
4)交换秘钥建⽴ssh免密码链接
$ source /home/gpadmin/gpsql/greenplum_path.sh
$ gpssh-exkeys -f /home/gpadmin/all_hosts (all_hosts是刚刚我们建⽴的⽂本)
这个过程需要输⼊root密码,输⼊即可。成功之后就可以从master节点免密码登录segment节点,如下图所⽰
5)复制greenplum软件到segment host
a. 主节点上创建安装GP 的tar⽂件
$ cd /home/gpadmin
$ gtar -cvf /home/gpadmin/gp.tar gpsql
b. ⽤gpscp命令将其安装到各个segment
$ source /home/gpadmin/gpsql/greenplum_path.sh
$ gpscp -f /home/gpadmin/all_segs  /home/gpadmin/gp.tar=:/home/gpadmin
启动gpssh会话
$ gpssh -f /home/gpadmin/all_segs
在gpssh下解压
=> gtar - -directory /usr/local -xvf/usr/local/gp.tar
然后更改gpsql为gpsqlsegment
建⽴gp当前版本⽬录连接:
=> ln -s /home/gpadmin/gpsqlsegment  /home/gpadmin/gpsql
6) 建⽴segment上的存储区
=>mkdir /home/gpadmin/primary #主⽂件
=>mkdir /home/gpadmin/mirror #镜像⽂件
五、初始化GP
1)同步时钟
在gpadmin下:
检查时钟: gpssh -f /home/gpadmin/all_hosts -v date
同步: gpssh -f /home/gpadmin/all_hosts -v ntpd
出错就以root再次执⾏,如果还出错,则可以通过⼿动将所有机器时钟设置为⼀致即可。
2)系统检测:
$ gpcheckos -f /home/gpadmin/all_hosts  (新的开源版本好像不⽀持该命令,跳过这⼀步)
此步骤会修复⼀些问题,不再列出,配置中存在错误都会提⽰如何修改,如果没有报错那么之前的配置成功了
3)初始化数据库
将/gpsql/docs/cli_help/gpconfigs/gpinitsystem_config⽂件copy到/home/gpadmin⽬录下然后编辑,保留如下参数即可
然后运⾏如下命令进⾏初始化
$ gpinitsystem -c /home/gpadmin/gpinitsystem_config –a
⾄此GP搭建完成
接下来就是gpstart -a 命令启动数据库;
psql -d postgres 连接到默认数据,然后就可以写sql语句
关闭数据库则⽤gpstop -a

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。