原创文章,转载请注明: 转载自 镜中影的技术博客
本文链接地址: HAWQ论文笔记
URL:http://blog.csdn.net/linkpark1904/article/details/49884017
1、背景
HAWQ是一个构建在HDFS之上的MPP(massively parallel processing)SQL引擎,不像其他构建在hadoop之上的SQL引擎,HAWQ支持标准SQL,并且完整的支持数据库事务。性能上,HAWQ比Stinger快40倍,比原生的HIVE快35倍-40倍。
对于分析型业务,系统需要满足这样一些特性,去满足用户的需求:
- 交互性查询(Interactive queries)
- 线性可扩展性(Scalability)
- 一致性(Consistency)
- 通用性(Extensibility)
- 支持通用标准(Standard compliance)
- 生产率:(Productivity)
Hadoop生态圈在这方面很难满足所有的需求,MapReduce是hadoop的基础计算框架用来计算结构化数据以及非结构化数据。然而,MapReduce在许多应用上存在诸多的限制,例如,很难满足交互性分析,低层次的编程模型对业务分析事务不友好。当然,Hive和Pig的出现弥补了一些不足,但是计算性能依然满足不了实时计算的需求。
在数据库领域,一个主要的趋势是构建MPP数据库系统(独立节点构成的分布式集群)。
HAWQ主要有以下几个方面的特性:
- 无状态分片(stateless segment)架构,支持元数据分离以及独立的执行引擎。
- 基于UDP的网络交互协议,解决计算过程中TCP端口不足问题。
- 基于Simming lane的事务模型,用来支持并发更新操作。
- 比原生HIVE快40倍。
2、架构
HAWQ集群构建在通用的硬件体系之上(x86集群),没有用到一些特殊的硬件。
HAWQ分层架构如下图2-1所示,一个MPP shared-nothing计算层构建在存储层(hdfs)之上。一个HAWQ集群