[发明专利]基于MapReduce扩展框架的分布式SQL查询方法有效

专利信息
申请号: 201210209080.2 申请日: 2012-06-19
公开(公告)号: CN102799622A 公开(公告)日: 2012-11-28
发明(设计)人: 王衎;高军;王腾蛟;杨冬青;唐世渭 申请(专利权)人: 北京大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 余长江
地址: 100871*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 mapreduce 扩展 框架 分布式 sql 查询 方法
【说明书】:

技术领域

发明涉及一种在分布式计算的环境下进行SQL查询的方法,特别涉及一种利用MapReduce和内存处理结合的方式处理SQL查询的框架,属于信息技术领域。

背景技术

随着互联网技术和相关行业的发展,计算机行业面临着指数增长的海量数据和更多的数据处理需求。面对这种状况,一些新技术快速发展,包括并行数据库、分布式处理等。

MapReduce是一个处理海量数据的计算框架,非常适合分布式的计算系统。Hadoop是一个由Apache基金会开发的基于MapReduce框架的分布式数据处理系统,有计算能力强、容错性和数据可用性强、可扩展性强等特性。然而,这种传统的MapReduce框架和Hadoop系统也有以下缺点:

1、擅长处理批量处理的问题和非结构化的数据,不擅长处理结构化数据的处理。

2、由于其高可扩展性,对于特定问题的处理需要用户进一步编程解决。不存在针对某种问题的特定接口。

3、由于其分布式的特点,存在着启动时间长、负载不均衡、数据吞吐量大等相关问题,进一步导致处理延时较高,不能支持一些实时的查询。

针对以上问题,已经有了多种对MapReduce框架的优化和补充,使得MapReduce适用于迭代的计算模型、结构化的数据处理、SQL查询等特定应用。其中,由于SQL查询是数据库领域的重要应用,且其处理能力强大,有大量的研究和分布式环境下的SQL查询相关。Hive和Google Dremel是两个比较成功的系统。

Hive是一个建立在Hadoop上的数据仓库系统,具有数据管理、数据查询等功能。Hive定义了一个类似于SQL的查询语言——HiveQL,支持SQL可以实现的绝大多数查询,并且查询接口简单。Hive利用Hadoop的Hadoop文件系统(HadoopFile System,HDFS)存储数据,利用Hadoop的MapReduce模块进行数据处理的工作,并且有很强的数据容错性和数据恢复能力。总体来看,Hive基本支持绝大多数分布式数据库的功能,并且有更好的扩展性和规模性。然而,由于Hive的数据处理的功能仍然建立在Hadoop上,它仍然存在一些Hadoop系统的缺点,比如处理延时较高的问题。下面通过简单分析Hive和Hadoop系统来说明这个问题。

Hive的体系结构如图1。在Hive部分中,CLI、Web GUI和JDBC/ODBC模块都是向用户提供的结构,用户通过接口提供查询。Thrift Server是提供跨语言开发的服务器模块,用来支持JDBC/ODBC。MetaStore模块是用来保存数据的元数据的服务器模块,Hive是用MySQL实现的,通过MetaStore可以高效地支持对数据的管理和查询。Driver部分是Hive的核心,它包含编译、优化、执行查询三个模块,功能是将用户发出的查询语句进行转化和优化,生成MapReduce程序并将其发送给Hadoop执行。在Hive中,查询的执行交给Hadoop来完成。Driver生成的MapReduce任务将被提交给Hadoop的JobTracker,JobTracker负责建立任务、跟踪任务运行状态并将任务结果返还给Hive的Driver。Hive提交的MapReduce任务的执行和普通的Hadoop的MapReduce任务的执行基本相同。

从上面对Hive框架的分析可以看出,Hive处理了上面提到的两个问题。一方面在Hadoop的基础上提供了一些针对SQL的特定接口,使得用户可以方便地使用MapReduce框架进行SQL查询;另一方面也针对MapReduce和SQL进行了优化,通过使用MetaStore和查询优化的模块对查询任务进行优化,使得MapReduce模型可以对结构化的数据进行处理。然而,由于Hive的查询任务仍然是交给Hadoop系统完成,因而没有解决Hadoop系统延迟较高的缺陷。

图2是Hadoop系统的MapReduce框架。MapReduce任务执行的一般流程是:

1、Mapper任务从HDFS上读取数据块(split)。

2、每个Mapper任务调用map函数,对每一个数据块进行处理,处理的结果写入缓存或者磁盘。

3、Mapper执行完之后,数据在本地进行排序和合并(有可能经过本地的combine)。

4、经过Shuffle阶段,每个节点把本地数据发送给对应的Reducer所在的节点。

5、在Reducer本地进行排序和合并。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210209080.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top