master:192.168.26.137
sgement1:192.168.26.139
segment2:192.168.26.140
segment3:192.168.26.136
2.文件夹创建: mkdir /root/study (所有节点) 3.安装包准备:greenplum-db-6.1.0-rhel7-x86_64,放在刚创建的/root/study目录下(可 Windows cmd scp命令操作 ) 4.关闭防火墙 (所有节点)关闭:systemctl stop firewalld 永久关闭 :systemctl disable firewalld
5.关闭SELINUX (所有节点)vi /etc/selinux/config 修改内容如下:SELINUX=disabled
6.配置/etc/hosts (所有节点)内容如下:
192.168.26.137 gp_1 mdw
192.168.26.139 gp_2 sdw1
192.168.26.140 gp_3 sdw2
192.168.26.136 gp_4 sdw3
7.配置sysctl.conf (所有节点)vi /etc/sysctl.conf
修改内容如下:
kernel.shmall = 197951838 # echo $(expr $(getconf _PHYS_PAGES) / 2)
kernel.shmmax = 810810728448 # echo $(expr $(getconf _PHYS_PAGES) / 2 * $(getconf PAGE_SIZE))
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 75 #vm.overcommit_ratio = (RAM - 0.026 * gp_vmem_rq) / RAM #gp_vmem_rq = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
#vm.min_free_kbytes = 487119#awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo
#对于大于64GB的主机,加上下面4行
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 # 1.5GB
vm.dirty_bytes = 4294967296 # 4GB
#对于小于64GB的主机删除dirty_background_bytes dirty_bytes,加上下面2行
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
8.配置资源限制参数 (所有节点)
vi /etc/security/limits.conf
* soft nofile 524288 * hard nofile 524288 * soft nproc 131072 * hard nproc 131072 “*” 星号表示所有用户9.创建用户 (所有节点)
groupadd gpyh useradd gpyh -g gpyh -s /bin/bash chown -R gpyh:gpyh /root/study #我很暴力,直接给了root目录权限 passwd gpyh
10.同步集群时钟(NTP) /脑仁疼,暂未设置/ (所有节点)
为了保证集群各个服务的时间一致,首先在master 服务器上,编辑 /etc/ntp.conf,配置时钟服务器为数据中心的ntp服务器。若没有,先修改master 服务器的时间到正确的时间,再修改其他节点的 /etc/ntp.conf,让他们跟随master服务器的时间。
[root@mdw ~]# vi /etc/ntp.conf
在server 最前面加上
master:
把server1,2,3,4全删
改成 server xxx,如果没有就设置成
server 1.cn.pool.ntp.org
segment:
server mdw prefer # 优先主节点
server smdw # 其次standby 节点,若没有standby ,可以配置成数据中心的时钟服务器
[root@mdw ~]# service ntpd restart # 修改完重启ntp服务
二、数据库安装以及初始化
1.安装数据库到指定文件夹 (master)
rpm -i –prefix=/home/gpadmin greenplum-db-6.0.0-rhel6-x86_64.rpm
2.进入gpyh用户,应用环境变量,打通集群ssh免密登录 (master)su gpyh source /root/study/greenplum-db/greenplum_path.sh ssh-keygen -t rsa #一路回车添加信任其他机器的Host key (4 台) (master)
> ssh-copy-id mdw > ssh-copy-id sdw1 > ssh-copy-id sdw2 > ssh-copy-id sdw3
创建 hostlist,seg_hosts (master)
> mkdir /root/study/hostlist/ > vi /root/study/hostlist/hostlist mdw sdw1 sdw2 sdw3 > vi /root/study/hostlist/sge_hosts sdw1 sdw2 sdw3
gpssh-exkeys -f hostlist3.打包以及分发数据库 (master)
tar -cf /root/study/gp6.tar greenplum-db-6.1.0/ gpscp -f /root/study/hostlist/hostlist /root/study/gp6.tar =:/root/study/
解压
> gpssh -f /root/study/hostlist/hostlist => cd /root/study => tar -xf gp6.tar => ln -s greenplum-db-6.1.0 greenplum-db4.创建数据存储空间 (master)
master节点
> mkdir -p /root/study/data/master
sgement节点
> source /root/study/greenplum-db/greenplum_path.sh > gpssh -f /root/study/hostlist/seg_hosts -e 'mkdir -p /root/study/data/primary' > gpssh -f /root/study/hostlist/seg_hosts -e 'mkdir -p /root/study/data/mirror'5.配置 .bash_profile 环境变量 (master)
vi /root/.bash_profile
source /root/study/greenplum/greenplum-db/greenplum_path.sh export MASTER_DATA_DIRECTORY=/root/study/data/master/gpseg-1 export PGPORT=5432 export PGUSER=gpyh6.配置初始化文件 (master)
> mkdir /root/study/gpadmin/gpconfigs > cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /root/study/gpconfigs/gpinitsystem_config vi /root/study/gpconfigs/gpinitsystem_config #数据库代号 ARRAY_NAME="Greenplum" #segment前缀 SEG_PREFIX=gpseg #primary segment 起始的端口号 PORT_base=33000 #指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment declare -a DATA_DIRECTORY=(/root/study/data/primary) #master所在机器的host name MASTER_HOSTNAME=mdw #master的数据目录 MASTER_DIRECTORY=/root/study/data/master #master的端口 MASTER_PORT=5432 #指定bash的版本 TRUSTED_SHELL=/usr/bin/ssh #将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1 CHECK_POINT_SEGMENTS=8 #字符集 ENCODING=UNICODE #mirror segment 起始的端口号 MIRROR_PORT_base=44000 # mirror的数据目录,和主数据一样,一个对一个,多个对多个 declare -a MIRROR_DATA_DIRECTORY=(/root/study/data/mirror)7.初始化数据库 (master)
> gpinitsystem -c /root/study/gpconfigs/gpinitsystem_config -h /root/study/hostlist/hostlist
可能会遇到的错:
网上百度的解决方法:root 用户执行
echo “RemoveIPC=no”>>/etc/systemd/logind.conf
service systemd-logind restart
但是没用,然后我是重启reboot,gpyh用户登录 重申变量 source /root/.bash_profile 再初始化就好了,如果遇到文件存在或端口占用就执行下:rm -rf /root/study/data/master/gpseg*,rm -f /tem/.s.PGSQL.5432 /tem/.s.PGSQL.5432.lock
三、使用数据库psql -d postgres q 退出 l 显示数据库列表 testdb=# alter role gpyh with password '123456'; #给用户设置数据库密码 ALTER ROLE
pgadmin使用
vi /root/study/data/master/gpseg-1/pg_hba.conf pg_ctl reload -D /home/gpadmin/data/master/gpseg-1 gpstop gpstart



