admin

GreenPlum部署指南
章节一:介绍GreenplumGreenplum的数据库是一个大规模并行处理(MPP)数据库服务器架构,该架构是专...
扫描右侧二维码阅读全文
29
2018/10

GreenPlum部署指南

章节一:介绍Greenplum

Greenplum的数据库是一个大规模并行处理(MPP)数据库服务器架构,该架构是专为管理大规模的数据仓库和商业智能设计的。由Pivotal公司开源,之前是商业的。

MPP(也称为shared nothing架构)是指系统具有两个或更多个处理机合作执行操作,每个处理机有它自己的内存,操作系统和磁盘。Greenplum使用这种高性能的系统架构来分布式加载multi-terabyte数据仓库,并且可以使用所有的系统资源并行处理查询。

Greenplum的数据库是基于PostgreSQL的开源技术,它本质上是几个PostgreSQL数据库实例一起协作当做一个有凝聚力数据库管理系统(DBMS)使用。GREENPLUM 数据库是基于PostgreSQL 8.2.15的,在SQL支持、产品特点、配置选项和终端用户功能方面,大多数情况下是与Postgres非常相似的。与Greenplum数据库的用户交互也类似一个普通的PostgreSQL数据库管理系统。

PostgreSQL的内部已被修改或补充,以支持Greenplum数据库的并行结构。例如,该系统目录,优化器,查询执行器,和事务管理器组件已被修改和改进,以支持能够在所有并行的PostgreSQL数据库实例同时执行查询。Greenplum Interconnect可使不同的PostgreSQL实例之间进行通信,并且使系统表现为一个逻辑数据库。

Greenplum数据库也有特有的特征,如优化的PostgreSQL商业智能功能(BI)与工作负载。另外,Greenplum增加了并行数据加载(外部表)、资源管理、查询优化、存储增强等功能,这些功能在标准PostgreSQL中都是没有的。由Greenplum开发的许多功能和优化也进入PostgreSQL的社区。例如,表分区是首先由Greenplum的开发了一种功能,它现在也在标准的PostgreSQL中了。

Greenplum数据存储和处理大数据量,是通过跨多个服务器和主机分配数据和负载。Greenplum数据库是基于PostgreSQL8.2单个数据库的阵列,这些数据库像单个数据库一样共同工作。master主机是Greenplum数据库系统的入口点,它是客户端连接并提交SQL语句的接口数据库实例。 Master协调系统中其他数据库实例(称为Segment)的工作负载,处理数据和存储。 分段通过互连,Greenplum数据库的网络层互相通信和主控。

GreenPlum部署指南(GPDB43InstallGuide中文版)

Greenplum数据库是一个纯软件解决方案,硬件和数据库软件不耦合。 Greenplum数据库在Greenplum认证的硬件供应商的各种服务器平台上运行。 性能取决于安装硬件的硬件。 由于数据库分布在Greenplum数据库系统中的多台机器上,硬件的正确选择和配置对于实现最佳性能至关重要。

本章介绍了Greenplum数据库系统的主要组件以及与每个组件关联的硬件注意事项和概念:Greenplum Master,Segments和Interconnect。此外,系统可能具有用于数据加载的可选ETL主机和用于监视查询工作负载和性能的Greenplum性能监视器。

1.1 Greenplum Master

Master是Greenplum数据库系统的入口点,数据库服务器进程接受客户端连接并处理系统用户发出的SQL命令。用户使用PostgreSQL兼容的客户端程序(如psql或ODBC)通过主服务器连接到Greenplum数据库。

Master维护系统目录(一组包含有关Greenplum数据库系统本身的元数据的系统表),但是该主机不包含任何用户数据。数据仅驻留在Segment主机上。Master验证客户端连接,处理传入的SQL命令,在Segment主机之间分配工作负载,协调每个Segment返回的结果,并将最终结果呈现给客户端程序。

因为Master不包含任何用户数据,所以它的磁盘负载很少。Master需要一个快速专用的CPU来进行数据加载,连接处理和查询计划,因为登陆加载文件和备份文件通常需要额外的空间,特别是在生产环境中。客户可能决定在主机上运行ETL和报告工具,这需要更多的磁盘空间和处理能力。

1.1.1 Master冗余

你可以选择部署Master实例的备份,如果Master主机变为非运行状态,则备用主机(Standby)将作为热备份。你可以在指定的冗余主机或其中一个Segment主机上部署备用主机。

Standby通过事务日志复制进程保持最新状态,该进程在备用主机(Standby)上运行,​​并同步Master主机和Standby主机之间的数据。如果Master主机失败,日志复制过程将关闭,管理员可以激活Standby。当Standby处于活动状态时,复制日志重建用于上一次成功提交事务时Master主机的状态。

由于Master不包含任何用户数据,因此只需要在Master和Standby之间同步系统目录表。当这些表被更新时,更改会自动复制到Standby,以便始终与主站同步。

GreenPlum部署指南(GPDB43InstallGuide中文版)

1.2 Greenplum Segment

在Greenplum数据库中,Segment是存储数据的地方,并且发生大多数查询处理。 用户定义的表及其索引分布在Greenplum数据库系统中的可用Segment; 每个Segment包含数据的不同部分。用户不直接与Greenplum数据库系统中的segment进行交互,而是通过Master进行交互。

在参考Greenplum数据库硬件配置中,每个segment主机的segment实例数由有效的CPU或CPU内核的数量决定。 例如,如果你的segment主机有两个双核处理器,则每个主机可能有两个或四个主要segment。 如果你的segment主机有三个四核处理器,则每个主机可能有三个,六个或十二个segment。性能测试将有助于确定所选硬件平台的最佳segment。

1.2.1 Segment冗余

部署你的Greenplum数据库系统时,你可以选择配置镜像segment。如果primary segment变得不可用,则镜像segment允许数据库查询故障切换到镜像segment。

镜像segment必须始终位于与primary不同的主机上。镜像segment可以通过两种标准配置中的一种或你设计的自定义配置在系统中的主机之间进行布置。默认配置(称为组镜像)将所有primary segment的镜像放置在另一主机上的主机上。另一种称为扩展镜像的选项,在其他主机上为每个主机的主要segment传播镜像。在具有多个网络接口的主机上,主接口和镜像接口间平均分配。下图:Greenplum数据库中的数据镜像数据库显示如何配置默认组镜像选项,表格数据如何分布在各个segment中。

GreenPlum部署指南(GPDB43InstallGuide中文版)

1.2.2 Segment故障切换和恢复

当在Greenplum数据库系统中启用镜像时,如果primary segment不可用,系统将自动故障转移到镜像副本。如果segment实例或主机只有在剩余活动segment上的所有数据部分都可用时,Greenplum数据库系统才能保持运行状态。

如果Master服务器无法连接到segment实例,则会在Greenplum数据库系统目录中将该segment实例标记为无效。Segment实例保持无效并停止运行,直到管理员将该Segment重新联机。管理员可以在系统启动并运行时恢复故障Segment,恢复过程仅复制该Segment不工作时遗漏的更改。

如果你没有启用镜像并且Segment变得无效,系统将自动关闭,管理员必须在启动之前恢复所有故障Segment。

1.2.3 示例Segment主机硬件堆栈

不管你选择的硬件平台如何,生产Greenplum数据库处理节点(Segment主机)通常按本节所述进行配置。

Segment主机执行大部分数据库处理,因此配置好Segment主机服务器,以便从你的Greenplum数据库系统获得最佳性能。Greenplum数据库的性能将与数组中最慢的Segment服务器一样快,也就是性能以最慢的Segment为准。因此,确保运行Greenplum数据库的基础硬件和操作系统都以最佳性能水平运行非常重要。还建议,Greenplum数据库阵列中的所有Segment主机都具有相同的硬件资源和配置。

Segment主机也应专用于Greenplum数据库操作,要获得最佳查询性能,你不希望Greenplum数据库与其他应用程序竞争机器或网络资源。

下图显示了Greenplum数据库Segment主机的硬件堆栈,主机上有效CPU的数量是确定每个Segment主机部署多少个Segment实例的基础。该示例显示了一个具有两个有效CPU(一个双核CPU)的主机。请注意,每个CPU内核有一个primary segment实例。

GreenPlum部署指南(GPDB43InstallGuide中文版)

1.2.4 示例Segment磁盘布局

每个CPU通常映射到逻辑磁盘,逻辑磁盘由一个主文件系统(可选的镜像文件系统)组成,通过I/O通道或磁盘控制器访问物理磁盘池。逻辑磁盘和文件系统由操作系统提供。大多数操作系统提供了逻辑磁盘驱动器使用RAID阵列中安排的物理磁盘组的功能。

GreenPlum部署指南(GPDB43InstallGuide中文版)

根据你选择的硬件平台,不同的RAID配置提供不同的性能和容量级别。Greenplum支持并认证了许多参考硬件平台和操作系统,请在你选择的平台上与你的销售客户代表联系,了解推荐的配置。

1.2.5 网络互连

网络互连是Greenplum数据库的网络层,当用户连接到数据库并发出查询时,会在每个Segment上创建进程以处理该查询的工作。网络互连是指Segment之间的进程间通信以及该通信所依赖的网络基础设施,网络互连使用标准的10千兆以太网交换结构。

默认情况下,Greeplum数据库互连使用具有流量控制的UDP(用户数据报协议)协议发送消息。 Greenplum软件做了附加分组验证和检查不由UDP协议执行,性能和可扩展性超过TCP。有关Greeplum数据库支持的互连类型的信息,请参阅“Greenplum数据库参考指南”中的服务器配置参数gp_interconnect_type。

1.2.5.1 网络互连冗余

可以通过在网络上部署双万兆以太网交换机,以及与Greenplum数据库主服务器和分段主机服务器的冗余10千兆位连接来实现高可用的互连。

1.2.5.2 网络接口配置

Segment主机通常具有指定给Greenplum互联流量的多个网络接口。除了用于互联通信的接口之外,主主机通常还具有额外的外部网络接口。

根据可用的接口数量,您将要跨可用接口数量分配互连网络流量。这通过将段实例分配给特定网络接口来实现,并确保主段在可用接口数量上均匀平衡。

这可以通过为每个网络接口创建单独的主机地址名称来完成。例如,如果主机具有四个网络接口,则它将具有四个相应的主机地址,每个主机地址映射到一个或多个主分段实例。应将/ etc / hosts文件配置为不仅包含每个计算机的主机名,还包含所有Greenplum数据库主机(主,备用主,分段和ETL主机)的所有接口主机地址。

通过此配置,操作系统会自动选择到达目的地的最佳路径。 Greenplum数据库自动平衡网络目的地以最大化并行性。

GreenPlum部署指南(GPDB43InstallGuide中文版)

1.2.6 交换机配置

在Greenplum Database阵列中使用多个万兆以太网交换机时,可均匀分配每个交换机之间的子网数量。 在此示例配置中,如果我们有两个交换机,每个主机上的NIC 1和2将使用交换机1,并且每个主机上的NIC 3和4将使用交换机2.对于主主机,绑定到NIC 1的主机名(因此 使用开关1)是阵列的有效主机主机名。 因此,如果为了冗余目的部署热备用主站,备用主站应映射到使用与主主机不同的交换机的NIC。

GreenPlum部署指南(GPDB43InstallGuide中文版)

1.3 ETL主机加载数据

Greenplum支持使用其外部表功能可以快速并行的数据加载。通过使用外部表与Greenplum数据库的并行文件服务器(gpfdist)结合使用,管理员可以从其Greenplum数据库系统实现最大的并行度和负载带宽。许多生产系统部署指定的ETL服务器以进行数据加载,这些机器运行Greenplum并行文件服务器(gpfdist),但不运行Greenplum数据库实例。

使用gpfdist文件服务器程序的一个优点是,它可以确保在从外部表数据文件读取时,您的Greenplum数据库系统中的所有Segment都被充分利用。gpfdist程序可以为segment实例提供数据,平均速率约为350MB/s,分隔文本格式的文件和CSV格式的文件为200MB/s。因此,为了最大化ETL系统的网络带宽,运行gpfdist时应考虑以下选项:

如果您的ETL机器配置了多个网络接口卡(NIC),请在ETL主机上运行每个gpfdist实例,然后定义外部表,以便每个NIC的主机名在LOCATION子句(请参阅“Greenplum数据库参考指南”中的CREATE EXTERNAL TABLE)。这允许您的Greenplum Segment主机和ETL主机之间的网络流量同时使用所有NIC。

在ETL主机上运行多个gpfdist实例,并在每个实例之间平均划分外部数据文件。 例如,如果您有一个具有两个网络接口卡(NIC)的ETL系统,那么您可以在该机器上运行两个gpfdist实例,以最大化您的负载性能。 然后,您将在两个gpfdist程序之间平均分配外部表数据文件。

1.4 Greenplum性能监视器

Greenplum还提供可选的监控和管理工具,管理员可以安装并启用Greenplum数据库。 要使用Greenplum性能监视器,您的Greenplum数据库阵列中的每个主机都必须安装并启用数据收集代理。 当你开始Greenplum性能监视器,代理开始收集关于查询和系统利用率的数据,代理定期将数据发送到Greenplum Master(通常每15秒)。用户可以查询Greenplum Performance Monitor数据库,查看有效查询和历史查询和系统性能数据。 Greenplum Performance Monitor还具有图形化的基于Web的用户界面,用于查看这些性能指标并以其他方式管理其Greenplum。

章节二:预估存储容量

2.1 计算可用磁盘容量

要计算Greenplum数据库系统可以容纳多少数据,您必须计算每个Segment主机的可用磁盘容量,然后将其乘以您的Greenplum数据库数组中的Segment主机数。从可用于数据存储(raw_capacity)的段主机上的物理磁盘的原始容量开始,它是:disk_size * number_of_disks

对于记录文件系统格式化开销(大约10%)和您使用的RAID级别。例如,如果使用RAID-10,计算将是:(raw_capacity * 0.9)/ 2 = formatted_disk_space

为了获得最佳性能,Pivotal建议您不要将磁盘完全填满容量,而是运行在70%以下。所以考虑到这一点,计算可用的磁盘空间如下:formatted_disk_space * 0.7 = useful_disk_space

一旦占用了最大推荐容量(availability_disk_space),则需要计算实际可用于用户数据的存储空间。如果使用Greenplum数据库镜像进行数据冗余,则会使用户数据的大小增加一倍。Greenplum数据库还需要保留一些空间作为活动查询的工作区域,工作空间应大约用户数据大小的三分之一。

临时文件空间和用户数据空间的准则假定是一个典型的分析工作负载,高度并发的工作负载或需要非常大量临时空间查询的工作负载可以从预留更大的工作区域中获益。通常,通过适当的工作负载管理,可以提高总体系统吞吐量,同时减少工作区域的使用。此外,临时空间和用户空间可以通过指定它们驻留在不同的表空间上来彼此隔离。

2.2 计算用户数据大小

与所有数据库一样,原始数据的大小一旦加载到数据库中将略大。平均来说,原始数据在加载到数据库之后将大约是磁盘的1.4倍,但根据你使用的数据类型,表存储类型,数据库内压缩等,可能会更小或更大。

页面开销 – 当您的数据加载到Greenplum数据库时,它分为32KB的页面,每页有20字节的页面开销。
行开销 – 在常规“堆”存储表中,每行数据具有24个字节的行开销,“append-optimized”存储表只有4字节的行开销。
属性开销 – 对于数据值本身,与每个属性值相关联的大小取决于所选择的数据类型。通常,您希望使用尽可能小的数据类型来存储数据(假设您知道列可能有的值)。
索引 – 在Greenplum数据库中,索引通过表数据分布在Segment主机上。Greenplum数据库中的默认索引类型是B-tree,因为索引大小取决于索引中唯一值的数量和要插入的数据,因此预先计算索引的确切大小是不可能的。但是,您可以使用这些公式粗略地估计索引的大小。
Btree:unique_values *(data_type_size + 24bytes)

Bitmap:(unique_values number_of_rows 1 bit compression_ratio / 8)+(unique_values 32)

2.3 计算元数据和日志的空间需求

在每个Segment主机上,您还需要考虑到Greenplum数据库日志文件和元数据的空间:

系统元数据 – 对于在主机上运行的每个Greenplum数据库Segment实例(primary segment或mirror segment)或Master实例,估计系统目录和元数据的大约20MB。
写入前端日志 – 对于在主机上运行的每个Greenplum数据库Segment实例(primary segment或mirror segment)或Master实例,为写入预写入日志(WAL)分配空间,WAL分为每个64MB的Segment文件。最多,WAL文件的数量将是:2 * checkpoint_segments + 1。
您可以使用它来估计WAL的空间需求,Greenplum数据库实例的默认checkpoint_segments设置为8,这意味着为主机上的每个Segment或Master实例分配1088 MB的WAL空间。

Greenplum数据库日志文件 – 每个Segment实例和Master实例生成数据库日志文件,这将随着时间的推移而增长,应该为这些日志文件分配足够的空间,并且应该使用某些类型的日志转换工具来确保日志文件不会增长太大。
命令中心数据 – Command Center使用的数据收集代理程序与Greenplum数据库实例在同一组主机上运行,​​并利用这些主机的系统资源。这些主机上的数据收集代理进程的资源消耗最小,不应显着影响数据库性能,存储收集代理收集的历史数据。
在您的Greenplum数据库系统中的Command Center数据库(名为gpperfmon)中。收集的数据就像常规数据库数据一样分发,因此您需要考虑到您的Greenplum Segment实例的数据目录位置中的磁盘空间。所需空间的数量取决于您希望保留的历史数据量,历史数据不会自动截断,数据库管理员必须设置一个截断策略来维护Command Center数据库的大小。

章节三:系统环境配置

3.1 系统内核参数优化配置

修改文件/etc/sysctl.conf,使用sysctl -p命令即时生效。

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
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

3.2 修改Linux最大限制

追加到文件/etc/security/limits.conf即可。

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072 
* hard nproc 131072

3.3 XFS文件系统

GP建议使用XFS文件系统,我的系统都是CentOS 7,所以默认就是XFS文件系统。如果你是CentOS 6系统,默认是EXT4,需要额外安装XFS文件系统。

所有节点单独挂载一块磁盘,我这里标识为sdb。

$ mkfs.xfs /dev/sdb

然后在/etc/fstab文件中追加挂载命令:

/dev/sdb /data xfs nodev,noatime,inode64,allocsize=16m 0 0

执行mount -a挂载即可。

3.4 设置磁盘预读扇区数

对于预读扇区数,官方文档的推荐值为16384,但译者认为应该为65536更合理。实际上预读的字节数是blockdev设置除以2,而GP缺省的blocksize为32KB,刚好与65536(32768B/32KB)对应。

检查某块磁盘的read-ahead设置:

$ blockdev --getra /dev/sdb
8192

临时修改系统的read-ahead设置:

$ blockdev --setra 65536 /dev/sdb

要想永久生效,还是需要追加到/etc/rc.local尾部即可。

3.5 磁盘I/O优化调整

Linux磁盘I/O调度器对磁盘的访问支持不同的策略,默认的为CFQ,GP建议设置为deadline。

我这里是sda磁盘,所以直接对sda磁盘更改IO调度策略(你需要根据你的磁盘进行设置),如下设置:

$ echo deadline > /sys/block/sdb/queue/scheduler

如果想永久生效,加入到/etc/rc.local即可。

PS:都配置完毕后,重启生效即可。

章节四:安装前环境配置

4.1 测试环境清单

角色主机名地址
master,segmentgpmaster10.10.0.186
standby,segmentgpstandby10.10.0.187
segmentgpsegment0110.10.0.188

4.2 设置主机名

# Master node;
$ hostname gpmaster
$ echo "hostname gpmaster" >> /etc/rc.local

# Standby node;
$ hostname gpstandby
$ echo "hostname gpstandby" >> /etc/rc.local

# Segment node;
$ hostname gpsegment01
$ echo "hostname gpsegment01" >> /etc/rc.local

4.3 关闭防火墙

如果想开启防火墙,就需要了解Greenplum所有的端口信息即可。

$ systemctl stop firewalld
$ systemctl disable firewalld

4.4 关闭SELinux

$ setenforce 0 
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

4.5 添加所有节点到/etc/hosts

10.10.0.186 gpmaster
10.10.0.187 gpstandby
10.10.0.188 gpsegment01

4.6 NTP时间同步

在Greenplum Master节点安装ntp服务器,然后Standby节点和Segment节点都同步Master节点的时间。

$ yum install ntp
$ systemctl start ntpd
$ systemctl enable ntpd

然后在Standby节点和Segment节点。

$ ntpdate gpmaster

Greenplum需要各个节点时间的时间都是一致的,切记。

章节五:安装Greenplum

5.1 在Master主机安装Greenplum二进制版本

$ unzip greenplum-db-4.3.x.x-PLATFORM.zip
$ /bin/bash greenplum-db-4.3.11.1-build-1-rhel5-x86_64.bin

会显示一些提供信息,一直回车跳过就会出现下面的交互窗口。

********************************************************************************
Do you accept the Pivotal Database license agreement? [yes|no]
********************************************************************************
yes
********************************************************************************
Provide the installation path for Greenplum Database or press ENTER to 
accept the default installation path: /usr/local/greenplum-db-4.3.11.1
********************************************************************************
 
********************************************************************************
Install Greenplum Database into /usr/local/greenplum-db-4.3.11.1? [yes|no]
********************************************************************************
yes
********************************************************************************
/usr/local/greenplum-db-4.3.11.1 does not exist.
Create /usr/local/greenplum-db-4.3.11.1 ? [yes|no]
(Selecting no will exit the installer)
********************************************************************************
yes
Extracting product to /usr/local/greenplum-db-4.3.11.1
********************************************************************************
Installation complete.
Greenplum Database is installed in /usr/local/greenplum-db-4.3.11.1
 
Pivotal Greenplum documentation is available
for download at http://gpdb.docs.pivotal.io

基本都是选择一些安装目录就行了,默认一直回车就行了。期间会建立软连接greenplum-db。
安装完greenplum之后,可以进入到对应的名录,查看一下相关目录。

[root@master ~]# cd /usr/local/greenplum-db
[root@master greenplum-db]# ll
total 264
drwxr-xr-x.  4 root root   4096 Jan  4 22:53 bin
drwxr-xr-x.  2 root root     31 Jan  4 21:13 demo
drwxr-xr-x.  5 root root     49 Jan  4 21:17 docs
drwxr-xr-x.  2 root root     42 Jan  4 21:17 etc
drwxr-xr-x.  3 root root     19 Jan  4 21:17 ext
-rwxr-xr-x.  1 root root  43025 Jan  4 21:21 GPDB-LICENSE.txt
-rw-r--r--.  1 root root    736 May  3 23:50 greenplum_path.sh
drwxr-xr-x.  6 root root   4096 Jan  4 21:17 include
drwxr-xr-x. 10 root root   8192 Jan  4 21:21 lib
-rwxr-xr-x.  1 root root 192912 Jan  4 21:21 LICENSE.thirdparty
drwxr-xr-x.  2 root root   4096 Jan  4 22:53 sbin
drwxr-xr-x.  4 root root     33 Jan  4 21:13 share

目录和文件解释:

GPDB-LICENSE.txt:Greenplum许可协议。
greenplum_path.sh:此文件包含Greenplum数据库的环境变量,请参阅设置Greenplum环境变量。
bin:此目录包含Greenplum数据库管理程序,此目录还包含PostgreSQL客户端和服务器程序,其中大部分也用于Greenplum数据库。
sbin:支持/内部脚本和程序。
demo:此目录包含Greenplum演示程序。
docs:Greenplum数据库文档(PDF文件)。
etc:OpenSSL的示例配置文件。
ext:一些Greenplum数据库实用程序使用的捆绑程序(如Python)。
include:Greenplum数据库的C语言头文件。
lib:Greenplum数据库和PostgreSQL库文件。
share:Greenplum数据库的共享文件。

5.2 在所有主机安装Greenplum二进制版本

5.2.1 创建gpadmin用户

[root@gpmaster ~]# groupadd gpadmin
[root@gpmaster ~]# passwd gpadmin

5.2.2 设置gpadmin用户环境变量

在/home/gpadmin/.bashrc和/home/gpadmin/.bash_profile文件最后添加下面两行。

source /usr/local/greenplum-db/greenplum_path.sh

设置完后记得source一下使其立即生效。

[root@gpmaster ~]# source /home/gpadmin/.bashrc 
[root@gpmaster ~]# source /home/gpadmin/.bash_profile

5.2.3 设置环境参数

[root@gpmaster ~]# source /usr/local/greenplum-db/greenplum_path.sh
[root@gpmaster ~]# echo $PATH
/usr/local/greenplum-db/./bin:/usr/local/greenplum-db/./ext/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

5.2.4 准备节点服务器信息文件

后面的批量安装会用到这两个文件,如果all_host和all_segment内容一样,可以只创建一个文件。

[root@gpmaster ~]# cat /opt/gpinit/all_host 
gpmaster
gpstandby
gpsegment01

5.2.5 建立节点服务器间的信任

[root@gpmaster ~]# gpssh-exkeys -f /opt/gpinit/all_host
[STEP 1 of 5] create local ID and authorize on local host
 
[STEP 2 of 5] keyscan all hosts and update known_hosts file
 
[STEP 3 of 5] authorize current user on remote hosts
  ... send to gpstandby
  ***
  *** Enter password for gpstandby: 
  ... send to gpsegment01
 
[STEP 4 of 5] determine common authentication file content
 
[STEP 5 of 5] copy authentication files to all remote hosts
  ... finished key exchange with gpstandby
  ... finished key exchange with gpsegment01
 
[INFO] completed successfully

按照提示输入root密码,记住这一步不能输入gpadmin的密码,因为批量安装时需要在/usr/local下创建目录,需要root权限。

5.2.6 批量安装

[root@gpmaster ~]# gpseginstall -f /opt/gpinit/all_host -u gpadmin -p gpadmin

这一步其实就是将master上的greenplum打包通过scp命令传到all_host中的主机上,并赋予目录gpadmin的权限。查看一下,如下:

[root@gpstandby ~]# ll -d /usr/local/greenplum-db
lrwxrwxrwx. 1 gpadmin gpadmin 21 May  4 01:53 /usr/local/greenplum-db -> greenplum-db-4.3.11.1

章节六:检查批量安装情况

在Master主机以gpadmin用户登录

[root@gpmaster ~]# su - gpadmin

加载GPDB安装目录下的路径文件

[gpadmin@gpmaster ~]$ source /usr/local/greenplum-db/greenplum_path.sh

章节七、创建数据存储区域

章节八:验证你的系统环境

章节十:验证你的硬件性能

章节十一:字符集问题

章节十二:初始化GreenPlum

章节十三:设置环境变量

章节十四:操作数据库

章节十五:增加Segment镜像

最后修改:2018 年 10 月 29 日 05 : 21 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论