详解Greenplum的架构和技术特点
摘要:本文介绍了大数据引擎Greenplum的架构和部分技术特点,从GPDB基本背景开始,在架构的层面上讲解GPDB系统内部各个模块的概貌,然后围绕GPDB的自身特性,并行执行和运维等技术细节,阐述了为什么选择使用Greenplum作为下一代的查询引擎解决方案。
Greenplum的MPP架构
Greenplum(以下简称GPDB)是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎。
GPDB是典型的Master/Slave架构,在Greenplum集群中,存在一个Master节点和多个Segment节点,其中每个节点上可以运行多个数据库。Greenplum采用shared nothing架构(MPP)。典型的Shared Nothing系统会集数据库、内存Cache等存储状态的信息;而不在节点上保存状态的信息。节点之间的信息交互都是通过节点互联网络实现。通过将数据分布到多个节点上来实现规模数据的存储,通过并行查询处理来提高查询性能。每个节点仅查询自己的数据。所得到的结果再经过主节点处理得到最终结果。通过增加节点数目达到系统线性扩展。
图1 GPDB的基本架构
如上图1为GPDB的基本架构,客户端通过网络连接到gpdb,其中Master Host是GP的主节点(客户端的接入点),Segment Host是子节点(连接并提交SQL语句的接口),主节点是不存储用户数据的,子节点存储数据并负责SQL查询,主节点负责相应客户端请求并将请求的SQL语句进行转换,转换之后调度后台的子节点进行查询,并将查询结果返回客户端。
Greenplum Master
Master只存储系统元数据,业务数据全部分布在Segments上。其作为整个数据库系统的入口,负责建立与客户端的连接,SQL的解析并形成执行计划,分发任务给Segment实例,并且收集Segment的执行结果。正因为Master不负责计算,所以Master不会成为系统的瓶颈。
Master节点的高可用(图2),类似于Hadoop的NameNode HA,如下图,Standby Master通过synchronization process,保持与Primary Master的catalog和事务日志一致,当Primary Master出现故障时,Standby Master承担Master的全部工作。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%