Greenplum 三节点安装教程(非root用户)
- 环境准备
安装vmware,装三台centos
虚拟机设置:
主机名 IP 内存 硬盘
node1 Xxx1 2G 80G
node2 Xxx2 2G 80G
node3 Xxx3 2G 80G
- CSDN下载greenplum安装文件: greenplum-db-4.3.8.2-build-1-RHEL5-x86_64
-
安装
首先关闭防火墙:service iptables stop 关闭Chkconfig iptables off 关闭开机启动
三机器修改hosts
Xxx1 node1
Xxx2 node2
Xxx3 node3
修改或添加/etc/sysctl.conf(三台机器)
xfs_mount_options = rw,noatime,inode64,allocsize=16m
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
配置/etc/security/limits.conf,添加以下内容,三台机器都要
- soft nofile 65536
- hard nofile 65536
- soft nproc 131072
- hard nproc 131072
三台机器设置预读块的值为16384
/sbin/blockdev --getra /dev/sda 查看预读块,默认大小为256
/sbin/blockdev --setra 16384 /dev/sda 设置预读块
三台机器设置磁盘访问I/O调度策略
echo deadline > /sys/block/sda/queue/scheduler
在主节点安装安装包
./ greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.bin
安装过程中遇到默认的直接回车,遇到yes|no输入yes,安装完之后或有一个greenplum的文件夹和一个指向geenplumn的greenplum-db的链接。
主节点获取环境参数(三台机器,可将其配置到.bashrc文件中)
source /your_install_path/greenplum-db/greenplum_path.sh
需要注意的是:这个.sh文件会修改pythonhome,会影响系统自带的python环境,以及依赖系统python的一切应用
在/your_install_path/grennplum文件夹下创建文件all_hosts,(三台机器),内容如下:
Node1
Node2
Node3
在主节点运行gpseginstall工具,来安装从节点segment
gpseginstall -f all_hosts -u U_username -p U_password
其中all_hosts是刚刚创建的文件,安装过程中会让你输入三台机器的密码,输入即可。
在你的安装用户下(非root用户)验证无密码登录(三台机器)
使用gpssh工具来测试无密码登录所有的主机
gpssh -f all_hosts -e ls -l $GPHOME
创建存储区域(主节点)
- 创建master数据存储区域
- -p /data/master
- your_install_path下创建一个包含所有segment主机名的文件seg_hosts,内容如下:
node2
node3
- 使用gpssh工具在所有的degment的主机上创建主数据和镜像数据目录,如果没有设置镜像数据可以不设置mirror目录:
Gpssh -f seg_hosts -e ‘mkdir -p your_install_path/data/primary’
Gpssh -f seg_hosts -e ‘mkdir -p your_install_path/data/mirror
同步三台机器的系统时间
- 在主节点上编辑/etc/ntp.conf来设置一下内容:
- 127.127.1.0
- 在segment主机上编辑/etc/ntp.conf
Server node1 - 在主节点上的your_install_path下通过NTP守护进程同步系统时钟
- -f all_hosts -v -e 'ntpd'
验证操作系统设置
gpcheck -f all_hosts -m mdw
运行结果是否有error信息,如果有的话,处理掉错误信息后重新执行上面的命令直到没有错误为止。
需要注意的是:本例不是使用root用户安装的,他会一直报错说不是root用户安装,这里需要更改gpcheck这个python文件,找到验证用户是否是root的地方,将root改为你自己的安装用户即可。
创建greenplun数据库配置文件
- 使用安装用户登录
- 从模板中拷贝一份gpinitsystem_config文件
Cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config - 修改gpinitsystem_config文件
- 设置所有必须参数
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(your_install_path/data/primary)
MASTER_HOSTNAME=node1
MASTER_DIRECTORY=your_install_path/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENT=8
ENCODING=UNICODE
- 设置可选参数
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/ your_install_path data/mirror)
运行初始化工具初始化数据库
gpinitsystem -c gpinitsystem_config -h seg_hosts 成功之后数据库就启动了
三节点设置环境变量,export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
启动和停止数据库测试是否能够正常启动和关闭
Gpstart
Gpstop
访问数据库
- 客户端访问
Psql -d postgres - 程序远程访问
修改pg_hba.conf文件,加入如下内容:
Hosts all all ip/32 trust
Hosts all all 127.0.0.1/32 trust
然后执行GPStop -u