系统要求和设置:
1、关闭防火墙:
$ /sbin/chkconfig iptables off
$ /sbin/chkconfig --list iptables如下输出,就ok了:
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
2、设置/etc/selinux/config:
SELINUX=disabled
3、在/etc/sysctl.conf 文件中加入有关共享内存与网络参数配置:
net.ipv4.ip_forward = 0 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.sem = 250 64000 100 512 kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 kernel.sem = 250 64000 100 512 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.core.netdev_max_backlog = 10000 vm.overcommit_memory = 2 net.ipv4.conf.all.arp_filter = 1
4、在/etc/security/limits.conf 中加入限制参数:
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
创建用户及用户组:
1、创建greenplum用户组:
$ groupadd gpadmin
2、创建greenplum用户、设置密码:
$ useradd -g gpadmin gpadmin $ passwd gpadmin $ New password: <gpadmin_password> $ Retype new password: <gpadmin_password>
编译安装:
1、下载 Greenplum Database 源代码:
$ git clone https://github.com/greenplum-db/gpdb
2、安装依赖库。Greenplum Database 编译和运行依赖于各种系统库和Python库,需要先安装这些依赖:
$ sudo yum install curl-devel bzip2-devel python-devel openssl-devel $ wget https://bootstrap.pypa.io/get-pip.py $ sudo python get-pip.py $ sudo pip install psi lockfile paramiko setuptools epydoc
3、编译 Greenplum Database 源代码并安装,假定安装到 $HOME/greenplum-db 目录下,进入gpdb目录执行命令:
$ ./configure --with-openssl --with-python --enable-debug --enable-depend --prefix=$HOME/greenplum-db $ make $ make install
初始化 Greenplum Database 集群:
源码安装后,需要初始化数据库。本例为单机版,所以master和数据节点都在一台服务器上。包括1个master,2个segment,2个mirror。
1、改变greenplum安转目录的owner:
$ chown -R gpadmin /usr/local/greenplum-db $ chgrp -R gpadmin /usr/local/greenplum-db
2、编辑 /etc/hosts:
127.0.0.1 mdw 127.0.0.1 sdw
3、切换成gpadmin用户,创建master和segment主机上的数据存放目录:
$ mkdir /home/gpadmin/masterdata $ mkdir /home/gpadmin/segmentdata $ mkdir /home/gpadmin/segdatamirror
4、创建包含所有主机名的文件 /home/gpadmin/all_hosts:
mdw sdw
5、含segment 主机名的文件 /home/gpadmin/seg_hosts:
sdw
6、将MASTER_DATA_DIRECTORY加入环境中,修改gpadmin用户的.bash_profile:
source /usr/local/greenplum-db/greenplum_path.sh MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1 export MASTER_DATA_DIRECTORY export PGPORT=5432 export PGDATABASE=testdb
7、配置参数 vi /home/gpadmin/gpinitsystem_config:
ARRAY_NAME="EMC Greenplum DW" SEG_PREFIX=gpseg PORT_BASE=33000 declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata /home/gpadmin/segmentdata) MASTER_HOSTNAME=mdw MASTER_DIRECTORY=/home/gpadmin/masterdata MASTER_PORT=5432 MACHINE_LIST_FILE=/home/gpadmin/seg_hosts TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MIRROR_PORT_BASE=43000 REPLICATION_PORT_BASE=34000 MIRROR_REPLICATION_PORT_BASE=44000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segdatamirror /home/gpadmin/segdatamirror)
8、把所有主机建立信任关系:
$ gpssh-exkeys -f /home/gpadmin/all_hosts
9、运行配置文件初始化greenplum数据库:
$ gpinitsystem -c /home/gpadmin/gpinitsystem_config
这个初始化过程中,会提示:Continue with Greenplum creation Yy/Nn,当然输入Y or y 就可以了。
10、初始化成功后,Greenplum会自动启动,可以这么查看进程:
ps -e|grep postgres
启动、停止与测试:
1、启动服务(以gpadmin的身份启动):
$ gpstart
2、进入shell:
$ psql postgres
3、创建一个新数据库:
# create database testDB;
4、创建一个角色:
# create role gpadmin with password 'gpadmin';
5、修改密码:
# alter role gpadmin with password 'gpadmin';
6、创建表:
# create table test01 (a int, b text) distributed by (a);
7、插入数据:
# insert into test01 values(1, 'hello'); # insert into test01 values(2, 'greenplum'); # insert into test01 values(3, 'pivotal'),(3,'haha');
8、查询:
# select * from test01; a | b ---+----------- 1 | hello 3 | pivotal 3 | haha 2 | greenplum (4 rows)
9、查看数据分布:
testdb=# select gp_segment_id, count(*) from test01 group by 1; gp_segment_id | count ---------------+--------- 3 | 1 0 | 1 1 | 1 2 | 1 (4 rows)
10、退出:
# \q11、停止数据库:
$ gpstop
至此,Greenplum单机版的安装与测试就此结束,有叙述不正确的地方请及时指正,欢迎交流。
分享:
崇尚极简,热爱技术,喜欢唱歌,热衷旅行,爱好电子产品的一介码农。
联系QQ:58742094
联系电话:
工作邮箱:
当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!
人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。
Copyright 2015- 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号
免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。