Hadoop++是对Hadoop Map Reduce的非入侵式优化,通过自定义Hadoop框架中的split等函数来提升,提升查询和联接性能。 项目由德国Saarland大学Jens Dittrich教授主持。项目主页是 http://infosys.uni-saarland.de/hadoop++.php

Hadoop++对Hadoop的优化主要是Trojan Index、Trojan Join和Trojan Layout三方面。

1、Trojan Index

Trojan index的核心是将数据组织成依次由数据、索引、Header和Footer这四部分构成的split,其中Footer是split的分界符,最后一 个Footer一定位于文件末尾。索引构建时由MapReduce完成排序。查询时split函数从文件末尾开始根据Footer信息解析出各个 split,itemize函数根据搜索范围条件快速定位满足条件的内容。

以数据库技术类比,Trojan Index类似于索引组织表。

2、Trojan Join

Trojan Join根据联接属性将来自多表的相关记录分到一个split,组织成类似于Trojan Index的结构,itemize出来的记录同时包含了参与联接的双方的属性,这样不再需要在查询时再根据联接属性用map/shuffle /reduce来计算联接。

以数据库技术类比,Trojan Join类似于多表聚簇。

3、Trojan Layout

类似于PAX,为block内部的数据组织方法,将查询中经常一起访问的属性组合在一起。不同复本用不同的Layout。根据负载计算最优的Layout,类似于背包算法。

以数据库技术类似,Trojan Layout类似于垂直分区,亮点是不同复本用不同的垂直分区。

posted on 2013-01-23 17:20  风生水起  阅读(677)  评论(0编辑  收藏  举报