Greenplum 源码编译安装教程

来源:互联网 发布:kernel task 上传数据 编辑:程序博客网 时间:2024/06/16 03:24

一、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)编辑/etc/sysctl.conf

kernel.shmall = 4000000000

net.ipv4.tcp_max_syn_backlog = 4096

vm.overcommit_memory = 2

net.core.netdev_max_backlog = 10000

kernel.sem = 250 64000 100 512

net.ipv4.ip_local_port_range = 1025 65535

net.ipv4.tcp_tw_recycle = 1

 

2)修改文件打开数限制

编辑/etc/security/limits.conf,添加

  * soft nofile 65536

  * hard nofile 65536

  编辑/etc/security/limits.d/90-nproc.conf,添加

  * soft nproc 131072

  * hard nproc 131072

3)安装前关闭防火墙

  使用/sbin/chkconfig iptables off命令关闭

  使用/sbin/chkconfig –list iptables查看防火墙状态,全部为off即可

  修改/etc/selinux/config 文件
  SELINUX=disabled

 

4)编辑/boot/grub/grub.conf

  添加elevator=deadline

三、GP源码编译安装

1)下载greenplum源码

访问https://github.com/greenplum-db/gpdb下载ZIP压缩包

使用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

$ sudo yum install apr-devel libevent-devel libyaml-devel

$ wget https://bootstrap.pypa.io/get-pip.py

$ 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


单节点搭建请参照:http://www.lwxshow.com/db/greenplum/how-to-build-gpdb.html

0 0