数据库GreenPlum集群环境配置与搭建.docx
- 文档编号:12758414
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:59
- 大小:335.98KB
数据库GreenPlum集群环境配置与搭建.docx
《数据库GreenPlum集群环境配置与搭建.docx》由会员分享,可在线阅读,更多相关《数据库GreenPlum集群环境配置与搭建.docx(59页珍藏版)》请在冰豆网上搜索。
数据库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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 GreenPlum 集群 环境 配置 搭建
![提示](https://static.bdocx.com/images/bang_tan.gif)