Greenplum 三节点安装教程(非root用户)

Greenplum 三节点安装教程(非root用户)

  1. 环境准备
    安装vmware,装三台centos

虚拟机设置:
主机名 IP 内存 硬盘
node1 Xxx1 2G 80G
node2 Xxx2 2G 80G
node3 Xxx3 2G 80G

  1. CSDN下载greenplum安装文件: greenplum-db-4.3.8.2-build-1-RHEL5-x86_64
  2. 安装
    首先关闭防火墙: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

创建存储区域(主节点)

  1. 创建master数据存储区域
  2. -p /data/master
  3. your_install_path下创建一个包含所有segment主机名的文件seg_hosts,内容如下:
    node2

node3

  1. 使用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

同步三台机器的系统时间
  1. 在主节点上编辑/etc/ntp.conf来设置一下内容:
  2. 127.127.1.0
  3. 在segment主机上编辑/etc/ntp.conf
    Server node1
  4. 在主节点上的your_install_path下通过NTP守护进程同步系统时钟
  5. -f all_hosts -v -e 'ntpd'
验证操作系统设置
gpcheck -f all_hosts -m mdw
运行结果是否有error信息,如果有的话,处理掉错误信息后重新执行上面的命令直到没有错误为止。
需要注意的是:本例不是使用root用户安装的,他会一直报错说不是root用户安装,这里需要更改gpcheck这个python文件,找到验证用户是否是root的地方,将root改为你自己的安装用户即可。

创建greenplun数据库配置文件
  1. 使用安装用户登录
  2. 从模板中拷贝一份gpinitsystem_config文件
    Cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
  3. 修改gpinitsystem_config文件
  4. 设置所有必须参数
    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

  1. 设置可选参数
    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

访问数据库
  1. 客户端访问
    Psql -d postgres
  2. 程序远程访问
    修改pg_hba.conf文件,加入如下内容:

Hosts all all ip/32 trust
Hosts all all 127.0.0.1/32 trust
然后执行GPStop -u

上一篇:Ignite的jdbc与网格的连接方式的查询性能对比


下一篇:Python中拼接字符串的多种方法, 你想了解吗?