Greeplum 系列 安装部署

Posted binarylei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Greeplum 系列 安装部署相关的知识,希望对你有一定的参考价值。

Greeplum 系列(二) 安装部署

本章将介绍如何快速安装部署 Greenplum,以及 Greenplum 的一些常用命令及工具。本章不会涉及硬件选型、操作系统参数讲解、机器性能测试等高级内容,这些会在 “第8章 Greenplum 线上环境部署” 中介绍。

2.1 软件安装及数据库初始化

下面先介绍如何搭建一个完整的 Greenplum 环境。在搭建环境之前,我们必须对 Greenplum 的架构有一定的了解,并且准备好安装部署的机器,机器硬件、操作系统的安装配置读者可自行完成。

2.1.1 Greenplum 架构

在安装数据库的时候,我们先要对 Greenplum 架构有一定的了解,这样可以对数据库的安装和使用起到一个指导性的作用。同时在搭建 Greenplum 环境的过程中,可以加深对 Grenplum 架构的理解。 Greenplum 总体架构构图如图 2-1 所示。

技术分享图片

下面介绍每个部件的主要功能,如表 2-1 所示。

表 2-1 Master 主机与 Segment 主机对比

Master 主机 Segment 主机
建立与客户端的会话连接和管理 业务数据的存储和存取
SQ L的解析并形成分布式的执行计划 执行由 Master分发的SQL语句
将生成好的执行计划分发到每个 Segment 上执行 对于 Master来说,每个 Segment都是对等的,负责对应数据的存储和计算
收集 Segment 的执行结果 每一台机器上可以配置一到多个 Segment
Master 不存储业务数据,只存储数据字典 由于每个 Segment 都是对等的,建议采用相同的机器配置
Master主机可以一主一备,分布在两台机器上 Segment 分 primary 和 mirror 两种,一般交错地存放在子节点上
为了提高性能,Master 最好单独占用一台机器 ...

通过图 2-2 可以看出 Master 与 Segment 的关系。

技术分享图片

Master 和 Segment 其实都是一个单独的 PostgreSQL 数据库。每一个都有自己单独的套元数据字典,在这里, Master 节点一般也叫主节点, Segment 也叫做数据节点。

Segment 节点与 Master 节点的通信,通过千兆(或万兆)网卡组成的内部连接(InterConnect),在同一台数据节点机器上可以放多个 Segment,不同的 Segment 节点会被赋予不同的端口,同时, Segment 之间也不断地进行着交互。为了实现高可用,每个 Segment 都有对应的备节点( Mirror Segment),分别存在于不同的机器上。

Client 一般只能与 Master 节点进行交互, Client 将 SQL 发给 Master,然后 Master 对 SQL 进行分析后,再将其分配给所有的 Segment 进行操作,并且将汇总结果返回给客户端。

2.1.2 环境搭建

1. 安装 Linux

Greenplun 没有 Windows 版本,只能安装在类 UNIX 的操作系统上。

2. Greenplum 集群介绍

节点 IP 内存 硬盘
mdw 192.168.2.101 512M 8G
sdw 192.168.2.102 512M 8G
sdw 192.168.2.103 512M 8G

机器对应的 Master 和 Segment 如下分配:192.168.2.101 作为 Master 节点,192.168.2.102~103 作为 Segment 节点,每个机器上配置两个 Primary Segment 和两个 Mirror Segment;同时 192.168.2.103 作为 Master Standy 节点。通过图 2-3 的架构图可以清晰地知道我们所搭建的集群的概况。

4. 网络(hosts)

在确定机器配置的时候,要保证所有机器的网络都是通的,并且每台机器的防火墙都是关闭的,避免存在网络不通的问题。

在配置/etc/hosts 时,习惯将 Master 机器叫做 mdw,将 Segment 机器叫做做 sdw,配置好后,使用 ping 命令确定所有 hostname 都是通的。

5. 创建用用户及用户组

创建 gpadmin 用户及用户组,将其作为安装 Greenplum 的操作系统用户。

# 删除原有的用户组及用户
groupdel gpadmin
userdel gpadmin

# 添加 gpadmin 用户组和 gpadmin 用户
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin

# 对文件夹赋予权限,为 gpadmin 创建密码
chown -R gpadmin:gpadmin /home/gpadmin/
passwd gpadmin

2.1.3 Greenplum 系统设置

(1) 修改或添加 /etc/sysctl.conf

# for greeplumn
# 共享内存
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

(2) 配置 /etc/security/limits.conf 文件

# number of file 文件的软数量,表示读取文件的最小数
* soft nofile 65536
# number of file 文件的硬数量,表示读取文件的最大数
* hard nofile 65536
# number of process 线程数量
* soft nproc 131072
* hard nproc 131072

(3) 设置磁盘访问 I/O 调度策略

cat /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sda/queue/scheduler
echo deadline > /sys/block/fd0/queue/scheduler
echo deadline > /sys/block/hdc/queue/scheduler

(4) 设置预读块的值为 16384

/sbin/blockdev --getra /dev/sda
/sbin/blockdev --setra 16384 /dev/sda
/sbin/blockdev --setra 16384 /dev/sda1
/sbin/blockdev --setra 16384 /dev/sda2
/sbin/blockdev --setra 16384 /dev/sda3

2.1.4 Greenplum 安装

Greenplum 下载地址: https://network.pivotal.io/products/pivotal-gpdb,选择 Database Server/Greenplum Data Computing Appliance Database Installer 下载。

注意:下载 Greenplum 前需要先注册帐号,如果还不能下载可以将国家设置为国外(如Australia),这里以 greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.zip 为例。

(1) 解压

tar -zxvf greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.zip

# 解压后的文件
greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.bin

(2) 配置 hostlist 和 seg_hosts

配置 hotlist 文件,将所有的服务器名记录在里面。

vim hostlist

mdw
sdw1
sdw2

seg_hosts 只保存 segment 节点的 hostname

vim seg_hosts

sdw1
sdw2

(3) 执行 greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.bin

./greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.bin
# gpseginstall -f hostlist -u gpadmin -p gpadmin
======================================================================
                             Greenplum DB
                    Appliance Automated Installer
----------------------------------------------------------------------
Timestamp ......... : 2018年 05月 17日 星期四 06:23:26 CST
Product Installer.. : greenplum-db-appliance-4.3.9.0-build-1-RHEL5-x86_64.bin
Product Version ... : 4.3.9.0
Build Number ...... : 
Install Dir ....... : /usr/local/GP-4.3.9.0
Install Log file .. : /home/gpadmin/install-170518-062326.log
======================================================================

Creating /usr/local/GP-4.3.9.0
======================================================================
Executing Post Appliance Installation Steps
======================================================================

Executing: source /usr/local/GP-4.3.9.0/greenplum_path.sh

Executing: gpseginstall --file hostfile -c csv 2>&1 | tee -a /home/gpadmin/install-170518-062326.log
20180517:06:23:59:002280 gpseginstall:master:root-[INFO]:-Installation Info:
link_name greenplum-db
binary_path /usr/local/GP-4.3.9.0
binary_dir_location /usr/local
binary_dir_name GP-4.3.9.0
20180517:06:23:59:002280 gpseginstall:master:root-[INFO]:-check cluster password access
20180517:06:24:00:002280 gpseginstall:master:root-[INFO]:-de-duplicate hostnames
20180517:06:24:00:002280 gpseginstall:master:root-[INFO]:-master hostname: master
20180517:06:24:01:002280 gpseginstall:master:root-[INFO]:-chown -R gpadmin:gpadmin /usr/local/greenplum-db
20180517:06:24:01:002280 gpseginstall:master:root-[INFO]:-chown -R gpadmin:gpadmin /usr/local/GP-4.3.9.0
20180517:06:24:01:002280 gpseginstall:master:root-[INFO]:-rm -f /usr/local/GP-4.3.9.0.tar; rm -f /usr/local/GP-4.3.9.0.tar.gz
20180517:06:24:01:002280 gpseginstall:master:root-[INFO]:-cd /usr/local; tar cf GP-4.3.9.0.tar GP-4.3.9.0
20180517:06:24:56:002280 gpseginstall:master:root-[INFO]:-gzip /usr/local/GP-4.3.9.0.tar
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: mkdir -p /usr/local
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: rm -rf /usr/local/GP-4.3.9.0
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-scp software to remote location
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: gzip -f -d /usr/local/GP-4.3.9.0.tar.gz
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-md5 check on remote location
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: cd /usr/local; tar xf GP-4.3.9.0.tar
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: rm -f /usr/local/GP-4.3.9.0.tar
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: cd /usr/local; rm -f greenplum-db; ln -fs GP-4.3.9.0 greenplum-db
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: chown -R gpadmin:gpadmin /usr/local/greenplum-db
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-remote command: chown -R gpadmin:gpadmin /usr/local/GP-4.3.9.0
20180517:06:25:50:002280 gpseginstall:master:root-[INFO]:-rm -f /usr/local/GP-4.3.9.0.tar.gz
20180517:06:25:51:002280 gpseginstall:master:root-[INFO]:-version string on master: gpssh version 4.3.9.0 build 1
20180517:06:25:51:002280 gpseginstall:master:root-[INFO]:-remote command: . /usr/local/greenplum-db/./greenplum_path.sh; /usr/local/greenplum-db/./bin/gpssh --version
20180517:06:25:51:002280 gpseginstall:master:root-[INFO]:-remote command: . /usr/local/GP-4.3.9.0/greenplum_path.sh; /usr/local/GP-4.3.9.0/bin/gpssh --version
20180517:06:25:56:002280 gpseginstall:master:root-[INFO]:-SUCCESS -- Requested commands completed
======================================================================
Installation complete
======================================================================

安装结果 /usr/local/greenplum-db

greeplum_path.sh: Greenplum 数据库环境变量文件
GPDB-LICENSE.txt: Greenplum许可协议
bin: 管理工具、客丿户端程序及服务程序
demo: 示例程序
docs: 帮助文档
etc: Openssl的配置示例
ext: 一此 GP 工具使用的捆绑程序
inlcude: C 头文件
lib: 库文件
sbin: 支持的或者内部的脚本和程序
share: 共享文件

2.1.5 Greenplum 初始化配置

(1) 获取环境变量

source greenplum_path.sh
# 查看环境变量
env

(2) 验证安装

a) 切换到 gpadmin 用户并获取环境变量

su - gpadmin
source /usr/local/greenplum-db/greenplum path. sh

b) 使用 gpssh 工具来测试无密码登录所有主机

gpssh-exkeys -f hostfile
gpssh -f hostfile -e ls -l $GPHOME

c) 将 "./usr/local/greenplum-db/greenplum_path.sh" 添加到 .bashrc 文件最后


每天用心记录一点点。内容也许不重要,但习惯很重要!

以上是关于Greeplum 系列 安装部署的主要内容,如果未能解决你的问题,请参考以下文章

Greeplum 系列 实战

Greeplum 系列 Greenplum 架构

Greeplum 系列 权限管理

Greeplum 系列 备份与恢复

vertica和greeplum的区别

如何在远程数据中心 (DR) 中的两个 Greeplum 集群之间同步数据