数据仓库-GreenPlum集群搭建(cent os 7)

2023-03-23 00:00:00 创建 数据库 多个 节点 配置

一、系统准备与设置
1.四台Linux系统电脑准备,可用虚拟机创建。
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 hostlist
3.打包以及分发数据库 (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-db
4.创建数据存储空间 (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=gpyh
6.配置初始化文件 (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

本文来源:https://blog.csdn.net/weixin_44178352/article/details/122127447

相关文章