Hawq架构

Hawq采用分层架构,将MPP shared-nothing的计算层架在HDFS之上。 

Hawq集群中有三种角色:master, namenode和segment hosts。

1、Master负责认证、授权、从查询解析、分析、优化到生成计划,启动并分发计划,并收集执行状态和结果。

2、segment host包含一个hdfs datanode和多个segment以更好地利用多核架构,datanode和segment放在一起可以更好地利用数据本地性。一个datanode对应多个segment,segment通过libhdfs3来访问hdfs,libhdfs3是一个c++的hdfs client。对于segment,每个segment在hdfs上对应一个单独的目录,在负责读写分配给它的数据时,就是读写该目录下的文件。

Hawq支持两种分配方式:hash和random。hash distribution将某个指定的列进行hash来分配数据。对于hash数据分配方式,相同key的数据都由同一个segment负责读取,而不需要再做shuffle或redistribute,既提升性能又节省网络带宽。

Hawq支持事务,对于catalog数据, 使用write ahead log(WAL)和mvcc多版本并发控制。

• A massively parallel processing SQL engine
• Inherits merits from MPP database and HDFS
• Stateless segment design supported by metadata dispatch and self-described execution plan
• UDP based interconnect to overcome TCP limitations
• Transaction management supported by a swimming lane model and truncate operation in HDFS
• Significant performance advantage over Stinger

 

posted @ 2016-07-27 22:00  先天高手  阅读(2324)  评论(0编辑  收藏  举报