执行命令ifconfig -a
查询出虚拟机ip地位为:192.168.191.131
2.配置hosts解析
我所谓的单机模式是指将Master和segment安装在一台机器上,尝试了网上的各种配置发现并不成功,尤其是将mdw和sdw都解析成127.0.0.1的设置根本行不通。你可以尝试设置Master为127.0.0.1,而segment为正式的ip地址,或者按我这么做:
执行命令:vim /etc/hosts
后面添加以下内容:
192.168.191.131 mdw sdw
注:192.168.191.131是虚拟机的ip地址
修改主机名:
永久生效:vi /etc/sysconfig/network
设置好了记得重新liunx;主机名就变成mdw。
3.关闭防火墙:
$ /sbin/chkconfig iptables off
$ /sbin/chkconfig --list iptables
如下输出,就ok了:
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
4.设置/etc/selinux/config
Vim /etc/selinux/config
设置SELINUX=disabled
5.设置/etc/sysctl.conf
在/etc/sysctl.conf文件中加入有关共享内存与网络参数配置
vim /etc/sysctl.conf
加入以下内容
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
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
红色标注是我文件没有的
6.设置/etc/security/limits.conf
在/etc/security/limits.conf中加入限制参数
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
手动执行命令让参数生效,当然,你也可以重启系统
执行命令:sysctl -p
7.上传greenplum-db-4.3.14.0-rhel5-x86_64.zip
上传greenplum-db-4.3.14.0-rhel5-x86_64.zip文件到/usr/local目录下
执行命令:unzip greenplum-db-4.3.14.0-rhel5-x86_64.zip
8.创建gpadmin组合用户
[root@mdw ~]# groupadd gpadmin
[root@mdw ~]# useradd -g gpadmin gpadmin
[root@mdw ~]# passwd gpadmin
New password:
Retype new password:
可以先设置一个简单的,以后再改,比如gpadmin
9.安装greenlium
[root@mdw local]# chmod u+x ./greenplum-db-4.3.14.0-rhel5-x86_64.bin
[root@mdw local]# ./greenplum-db-4.3.14.0-rhel5-x86_64.bin
将greenplum-db-4.3.14.0目录重命名为greenplum-db(不重名也可以)
打开greenplum_path.sh
将GPHOME=/usr/local/greenplum-db-4.3.14.0 修改成GPHOME=/usr/local/greenplum-db;跟greenplum-db目录名称一致
修改成:
切换到gpadmin账户下,在home目录下建立master和segment的数据存放目录。你也可以自行设定数据存放目录,如果你不是以gpadmin建立的目录,还需要修改目录的用户和用户组,最好是建在home目录下
su - gpadmin
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata
mkdir -p /home/gpadmin/segmentmirror
创建包含所有主机的文件all_hosts
vim /home/gpadmin/all_hosts
加入下面两行
mdw
sdw
创建包含segment主机名的文件
vim /home/gpadmin/seg_hosts
加入下面一行
sdw
修改gpadmin用户的.bashrc
切换到
cd /home/gpadmin执行vim .bashrc
执行命令vim .bashrc:
在最后添加如下内容
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=gpadmin
PS:greenplum_path的路径也是根据你的gp安装路径来的,如果和我不一样,自己改吧,若果路径不对,gp命令将无法执行,会提示没有这个命令
然后在执行
vi .bash_profile命令
在最后添加如下内容
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=gpadmin
编辑gp初始化配置文件,直接编辑一个新文件,不要复制官方目录里的再改了,除非你想知道这些东西都是什么意思
vim /home/gpadmin/gpinitsystem_config
添加以下内容
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/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/segmentmirror)
PS:注意这里面的几个路径,如果你有多个segment,declare就多加几个路径,我这里只设了一个segment节点,所以只有一个路径
添加:
建立信任关系,主要为了免密码登录的麻烦,若果提示命令不存在,先source一下.bashrc,如果还不对,回到第8步检查一下你配的路径
切换到/home/gpadmin目录下:
gpssh-exkeys -f /home/gpadmin/all_hosts
初始化数据库,我曾经因为这一步执行不成功熬了一夜,各种报错,各种提示
gpinitsystem -c /home/gpadmin/gpinitsystem_config
$ psql postgres
2.创建一个新数据库:
# create database testDB;
3.创建一个角色:
# create role gpadmin with password 'gpadmin';
4.修改密码:
# alter role gpadmin with password 'gpadmin';
5.创建表:
# create table test01 (a int, b text) distributed by (a);
6.插入数据:
# insert into test01 values(1, 'hello');
# insert into test01 values(2, 'greenplum');
7.查询:
# select * from test01;
a | b
---+-----------
1 | hello
3 | pivotal
3 | haha
2 | greenplum
(4 rows)
8.查看数据分布:
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)
9.退出:
# \q
10.停止数据库:
$ gpstop
11.启动服务(以gpadmin的身份启动):
$ gpstart