数据库GreenPlum集群环境配置与搭建.docx

上传人:b****1 文档编号:12758414 上传时间:2023-04-21 格式:DOCX 页数:59 大小:335.98KB
下载 相关 举报
数据库GreenPlum集群环境配置与搭建.docx_第1页
第1页 / 共59页
数据库GreenPlum集群环境配置与搭建.docx_第2页
第2页 / 共59页
数据库GreenPlum集群环境配置与搭建.docx_第3页
第3页 / 共59页
数据库GreenPlum集群环境配置与搭建.docx_第4页
第4页 / 共59页
数据库GreenPlum集群环境配置与搭建.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

数据库GreenPlum集群环境配置与搭建.docx

《数据库GreenPlum集群环境配置与搭建.docx》由会员分享,可在线阅读,更多相关《数据库GreenPlum集群环境配置与搭建.docx(59页珍藏版)》请在冰豆网上搜索。

数据库GreenPlum集群环境配置与搭建.docx

数据库GreenPlum集群环境配置与搭建

GreenPlum集群环境搭建

1、简介

环境搭建准备:

greenplum-4.3.8.2

1.1greenplum介绍

简单的说它就是一个与ORACLE,DB2一样面向对象的关系型数据库。

我们通过标准的SQL可以对GP中的数据进行访问存取。

GREENPLUM与其它普通的关系型数据库的区别?

本质上讲GREENPLUM是一个关系型数据库集群.它实际上是由数个独立的数据库服务组合成的逻辑数据库。

与RAC不同,这种数据库集群采取的是MPP架构。

如下图所示

它的组件分成三个部分MASTER/SEGMENT以及MASTER与SEGMENT之间的高效互联技术GNET。

其中MASTER和SEGMENT本身就是独立的数据库SERVER。

不同之处在于,MASTER只负责应用的连接,生成并拆分执行计划,把执行计划分配给SEGMENT节点,以及返回最终结果给应用,它只存储一些数据库的元数据,不负责运算,因此不会成为系统性能的瓶颈。

这也是GREENPLUM与传统MPP架构数据库的一个重要区别。

SEGMENT节点存储用户的业务数据,并根据得到执行计划,负责处理业务数据。

也就是用户关系表的数据会打散分布到每个SEGMENGT节点。

当进行数据访问时,首先所有SEGMENT并行处理与自己有关的数据,如果需要segment可以通过进行innterconnect进行彼此的数据交互。

segment节点越多,数据就会打的越散,处理速度就越快。

因此与SHAREALL数据库集群不同,通过增加SEGMENT节点服务器的数量,GREENPLUM的性能会成线性增长。

GREENPLUM适用场景?

GREENPLUM虽然是关系型数据库产品,它的特点主要就是查询速度快,数据装载速度快,批量DML处理快。

而且性能可以随着硬件的添加,呈线性增加,拥有非常良好的可扩展性。

因此,它主要适用于面向分析的应用。

比如构建企业级ODS/EDW,或者数据集市等等。

GREENPLUM运行的平台?

GREENPLUM运行在X86架构的硬件平台上,目前支持的操作系统包括32/64位的LINUX(REDHAT/SUSE)/SOLARIS/MACOS

GREENPLUM的前景?

GREENPLUM诞生于2003年硅谷,2010/07EMC收购了GREENPLUM,并把GREENPLUM作为EMC面向分析云的战略核心产品,加以大力发展。

该产品不仅在国际市场发展很快,在国内市场发展也很快。

最著名的案例就是阿里巴巴集团,经过多种产品的精心选型,最终选择GREENPLUM作为它们的数据仓库平台存放数百TB的业务数据去高效支持各种分析应用。

 

如何学习GREENPLUM?

正是由于产品发展速度很快,但是在相关人才上存在很大缺口。

因此,我个人认为对于各位有兴趣的技术人员来说,是一个很好的职业发展机会。

以个人经验来说,只要有其它关系型数据库的基础,尤其是POSTGRESQL或者INFORMIX基础的(因为GREENPLUM是在POSTGRESQL基础上开发出来的),很容就可以上手学习并掌握GREENPLUM。

GREENPLUM的手册写的非常好,完全可以作为入门的教材使用。

其软件本身也是软性LICENSE,用于学习研究完全免费,而且与生产环境并无不同,这与ORACLE完全一样。

2、GreenPlum的HA

GP提供了几个选择性的功能来保证最大正常运行时间和高可用。

包括:

1.SegmentMirroring--segment镜像

2.MasterMirroring--master镜像

3.FaultDetection&Recovery--错误检测和恢复

-----SegmentMirroring------

PrimarySegment和MirrorSegment放在不同主机上。

在数据库操作过程中,只有primarysegment是活跃的,mirror仅仅做复制处理(fileblockreplicationprocess)

Segment挂了后系统操作流程:

1.当segment挂了,文件复制进程停止,mirrorsegment自动的成为活跃的segmentinstance.

所有数据库操作则继续使用mirror。

2.此时记录事务的模式发生改变,系统状态为ChangeTracking模式。

3.当管理员把失败segment重新启动后,恢复进程将把2个之间的差异数据同步。

此时系统状态为Resynchronizing模式

4.一旦所有的mirror和primary都再次同步完成,系统状态将变更为Synchronized模式。

------MasterMirroring------

你可以选择性的部署额外一台机器作为StandbyMaster。

gpsyncagent--复制进程,用来做master和standby之间的数据同步。

Master挂了后系统操作流程:

1.如果primarymaster失败后,复制进程将被关闭,并且standbymaster能够被激活,以替换primary。

2.于是激活的standbymaster被作为GP数据库master,接收和原master相同端口的连接

(replicatedlog是用来恢复最后成功提交事务时间点的masterhost的状态)

注:

master是不包含用户数据,只是包含systemcatalog表。

这些表不经常更新,如果有更新的话,会自动同步到standby。

故master和standby始终都保持一致。

------错误检测和恢复------

ftsprobe-GP中用来做错误检测的,GPSever(postgres)的子进程。

该进程根据配置时间间隔监控GP队列、扫描所有segment和数据库进程。

gprecoverseg-检测宕掉的segment是否有效,并且和当前活跃segment比较,找出哪些改变丢失。

它将只把差异部分做同步,然后把segment设成online。

该进程在GP启动和运行的时候会被执行。

(如果mirror没开,segment不可用,GP自动shutdown。

必须做手工恢复。

3、greenplum4.3.8.2分布式的安装部署

Centos6.5系统:

64位

3.1系统设置

1.  编辑/etc/sysctl.conf文件

   net.ipv4.ip_forward=0

   net.ipv4.conf.default.accept_source_route=0

   kernel.sysrq=1

   kernel.core_uses_pid=1

   net.ipv4.tcp_syncookies=1

   kernel.msgmnb=65536

   kernel.msgmax=65536

   kernel.sem=25064000100512

   kernel.shmmax=500000000

   kernel.shmmni=4096

   kernel.shmall=4000000000

   kernel.sem=25064000100512

   net.ipv4.tcp_tw_recycle=1

   net.ipv4.tcp_max_syn_backlog=4096

   dev_max_backlog=10000

   vm.overcommit_memory=2

   net.ipv4.conf.all.arp_filter=1

   对于练习环境来说,这个配置是没有问题的。

但是在生产环境中,整个系统中有大量SEGMENT实例和镜像实例时,这样的配置可能导致无法启动服务。

所以,请加大kernel.sem=25064000100512中最后一位的配置,比如把512改成1024,2048这样的值。

另外,可以加大共享内存相关的配置,比如kernel.shmmax和kernel.shmall。

完成编辑之后,以root身份执行命令sysctl-p或者重启系统,使其配置生效。

2.在/etc/security/limits.conf配置文件末尾处增加如下内容:

*softnofile65536#nofile-打开文件的最大数目

*hardnofile65536

*softnproc131072#noproc-进程的最大数目

*hardnproc131072

*softcoreunlimited#core-限制内核文件的大小

注意:

对于RedHat6.x系统,还需要将/etc/security/limits.d/90-nproc.conf文件中

的1024修改为131072。

3格式化磁盘

安装所需要的文件系统。

GREENPLUM只能使用文件系统存放数据,不支持裸设备。

出于性能考虑,EMC官方建议在LINUX上使用XFS文件系统,SOLARIS上使用ZFS文件系统。

如果是练习环境则无所谓,只要相应操作系统可以支持的文件系统即可。

对于LINUX来说,SUSE的安装介质上就带有XFS文件系统。

REHL6.0以下/CENTOS6.0以下版本则需要到相关网站单独下载XFS文件系统安装。

XFS文件系统安装:

64bit:

rpm-ivhkmod-xfs-0.4-2.x86_64.rpm

rpm-ivhxfsprogs-2.9.4-1.el5.centos.x86_64.rpm

32bit:

rpm-ivhkmod-xfs-0.4-2.i686.rpm

rpm-ivhxfsprogs-2.9.4-1.el5.centos.i386.rpm

 先用fdisk-l查看要格式化的设备,然后使用命令mkfs-txfs/dev/sdc,创建mount点,比如mkdir-p/data/vol1

   为了保证系统重启后,可以自动mount磁盘,以root身份编辑/etc/fstab,添加条目

   [devicefile]/dataxfslogbufs=8,noatime,nodiratime11

   也可以每次系统启动,自己用命令mount/data/vol1进行mount。

GP建议使用下面的挂载参数:

rw,noatime,inode64,allocsize=16m

比如,挂载XFS格式的设备/dev/sdb到目录/data1,/etc/fstab中的配置如下:

/dev/sdb/data1xfsrw,noatime,inode64,allocsize=16m11

4更改磁盘I/O策略

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

以root身份编辑/boot/grub/menu.lst,添加一行elevator=deadline,但是不要修改failsafe的定义,如下图:

重启系统(必须),再以root身份执行命令cat/sys/block/*/queue/scheduler,输出的每行应该含有有[deadline],

比如noopanticipatory[deadline]cfq

然后应该设置磁盘预读,优化磁盘IO效率。

以root身份编辑/etc/rc.d/rc.local,添加类这样的内容blockdev--setra16384/dev/sd*,重启系统。

使用命令blockdev--getra/dev/sd*可以验证设置。

5配置read-ahead(blockdev)值

官方文档的推荐值为16384

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

#blockdev--getradevname

例如:

#blockdev--getra/dev/sda

16384

修改系统的read-ahead设置,可通过/etc/rc.d/rc.local来修改,在文件尾部追加如下代码:

#blockdev--setra16384/dev/mapper/vg00-LV_01

如需临时修改read-ahead设置,可通过执行下面的命令来实现:

#blockdev--setrabytesdevname

例如:

#blockdev--setra16384/dev/sda

6关闭防火墙

chkconfigiptablesoff永久关闭

serviceiptablesstop本次关闭

serviceiptablesstatus查看防火墙状态

3.2修改主机名和/etc/hosts文件

1)在各个主机上修改主机名

vi/etc/sysconfig/network

HOSTNAME=master

重启后生效。

输入指令hostname可查看当前主机的名字

2)/etc/hosts是ip地址和其对应主机名文件,使机器知道ip和主机名对应关系,格式如下:

注:

每台机器都如上操作。

3.3安装greenplum

1.准备配置文件

创建一个host_file,包含了Greenplum部署的所有主机名,内容如下:

mdw1

smdw1

sdw1

sdw2

创建一个hostfile_segonly,包含了所有的SegmentHost的主机名,内容如下:

sdw1

sdw2

创建一个hostfile_exkeys,包含了所有的Greenplum主机的网口对应的主机名(因为有可能是双网卡的服务器),内如如下:

mdw1

smdw1

sdw1

sdw2

2.创建greenplum账户

从4.1开始,GREENPLUM提供了一个工具gpseginstall,我们只需在master节点,以root身份运行它,它会根据指定主机列表自动安装文件,创建系统用户gpadmin,并自动建立root用户和系统用户(gpadmin)的等效性.

在greenplumbin目录下使用./gpseginstall-fhost_file-ugpadmin-pgpadmin

来创建系统用户.

会输出类似以下信息:

3.确认安装

1).在Master主机以gpadmin用户登录:

$sugpadmin

2).加载GPDB安装目录下的路径文件:

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

3).使用gpssh命令确认是否可以在不提示输入密码的情况下登录到所有安装

了GP软件的主机。

使用hostfile_exkeys文件。

该文件需包含所有主机的所

有网口对应的主机名。

例如:

$gpssh-fhost_file-els-l$GPHOME

如果成功登录到所有主机并且未提示输入密码,安装没有问题。

所有主机在安

装路径显示相同的内容,且目录的所有权为gpadmin用户。

如果提示输入密码,执行下面的命令重新交换SSH密钥:

$gpssh-exkeys-fhost_file

4.创建数据存储区域

1)在Master主机上创建数据目录位置

[root@gp_test1Server]#mkdir/data/

[root@gp_test1Server]#mkdir/data/master

[root@gp_test1Server]#chown-Rgpadmin:

gpadmin/data/

2)使用gpssh命令在StandbyMaster上创建与和Master相同的数据存储位置

[root@gp_test1data]#source/usr/local/greenplum-db/greenplum_path.sh

[root@gp_test1data]#gpssh-hsmdw1-e'mkdir/data/'

会显示如下信息:

[smdw1]mkdir/data/

[root@gp_test1data]#gpssh-hsmdw1-e'mkdir/data/master'

会显示如下信息:

[smdw1]mkdir/data/master

[root@gp_test1data]#

[root@gp_test1data]#gpssh-hsmdw1-e'chown-Rgpadmin:

gpadmin/data/'

会显示如下信息:

[smdw1]chown-Rgpadmin:

gpadmin/data/

3)在所有Segment主机上创建数据目录位置

Tips:

gpssh-h针对给出的主机名hostname

gpssh-f针对files文件里的清单

使用刚刚创建的hostfile_segonly文件指定Segment主机列表。

例如:

[root@gp_test1data]#gpssh-f/dba_files/gp_files/hostfile_segonly-e'mkdir/data'

会显示如下信息:

[sdw2]mkdir/data

[sdw1]mkdir/data

[root@gp_test1data]#gpssh-f/dba_files/gp_files/hostfile_segonly-e'mkdir/data/primary'

会显示如下信息:

[sdw2]mkdir/data/primary

[sdw1]mkdir/data/primary

[root@gp_test1data]#gpssh-f/dba_files/gp_files/hostfile_segonly-e'mkdir/data/mirror'

会显示如下信息:

[sdw2]mkdir/data/mirror

[sdw1]mkdir/data/mirror

[root@gp_test1data]#gpssh-f/dba_files/gp_files/hostfile_segonly-e'chown-Rgpadmin:

gpadmin/data/'

会显示如下信息:

[sdw2]chown-Rgpadmin:

gpadmin/data/

[sdw1]chown-Rgpadmin:

gpadmin/data/

5.NTP配置同步系统时钟

GP建议使用NTP(网络时间协议)来同步GPDB系统中所有主机的系统时钟。

在Segment主机上,NTP应该配置Master主机作为主时间源,而Standby作为备选时间源。

在Master和Standby上配置NTP到首选的时间源(如果没有更好的选择可以选择Master自身作为最上端的事件源)。

配置NTP

1.在Master主机,以root登录编辑/etc/ntp.conf文件。

设置server参数指向数据中心

的NTP时间服务器。

例如(假如10.6.220.20是数据中心NTP服务器的IP地址):

server10.6.220.20

2.在每个Segment主机,以root登录编辑/etc/ntp.conf文件。

设置第一个server参数

指向Master主机,第二个server参数指向Standby主机。

例如:

servermdw1prefer

serversmdw1

3.在Standby主机,以root登录编辑/etc/ntp.conf文件。

设置第一个server参数指向

Master主机,第二个参数指向数据中心的时间服务器。

例如:

servermdw1prefer

server10.6.220.20

4.在Master主机,使用NTP守护进程同步所有Segment主机的系统时钟。

例如,使

用gpssh来完成:

#gpssh-fhostfile_allhosts-v-e'ntpd'

5.要配置集群自动同步系统时钟,应开启各个NTP客户机的ntpd服务,并设置为开机时自动运行:

#/etc/init.d/ntpdstart

#chkconfig--level35ntpdon

或是servicentpdstart,再设置ntsysv,选择ntpd服务

传上NTP主机的/etc/ntp.conf配置,也就是MASTER,修改部分见下划线

#Permittimesynchronizationwithourtimesource,butdonot

#permitthesourcetoqueryormodifytheserviceonthissystem.

restrictdefaultkodnomodifynotrapnopeernoquery

restrict-6defaultkodnomodifynotrapnopeernoquery

#Permitallaccessovertheloopbackinterface.Thiscould

#betightenedaswell,buttodosowouldeffectsomeof

#theadministrativefunctions.

restrict127.0.0.1

restrict-6:

:

1

restrict10.27.1.0mask255.255.255.0nomodify

#Hostsonlocalnetworkarelessrestricted.

#restrict192.168.1.0mask255.255.255.0nomodifynotrap

#Usepublicserversfromthepool.ntp.orgproject.

#Pleaseconsiderjoiningthepool(http:

//www.pool.ntp.org/join.html).

#broadcast192.168.1.255key42#broadcastserver

#broadcastclient#broadcastclient

#broadcast224.0.1.1key42#multicastserver

#multicastclient224.0.1.1#multicastclient

#manycastserver239.255.254.254#manycastserver

#manycastclient239.255.254.254key42#manycastclient

#UndisciplinedLocalClock.Thisisafakedriverintendedforbackup

#andwhennooutsidesourceofsynchronizedtimeisavailable.

server127.127.1.0#localclock

fudg

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1