正在加载图片...
1746 计算机学报 011年 该框架允许用户使用C++、java、 Python等语言编 nad Use 写 MapReduce函数,编写的函数可以作为一个子查 询在SQL中使用,从而同时获得SQL的易用性和 MapReduce的开放性.不仅如此, Aster d at a基于 Grouped- group MapReduce实现了30多个统计软件包,从而将数 据分析推向数据库内进行(数据库内分析),大大提 升了数据分析的性能 Greenplum也在其数据库中引入了 M maPreduce 处理功能.其执行引擎可以同时处理SQL查询 图3 Pig Latin的一个查询示例(右边为实际脚本) 和 MapReduce任务这种方式在代码级整合了 SQL Stonebraker等人设计的 V erica42数据库和NCR 和 Map reduce:sQL可以直接使用 M apReduce任公司的 Teradata42数据库 务的输出,同时 M apRoduct任务也可以使用SQL H adoopD B的核心思想是利用 H adop作为调 的查询结果作为输入 度层和网络沟通层,关系数据库作为执行引擎,尽可 总的来说这些系统都集中于利用 MapReduce能地将查询压入数据库层处理目标是想借助 来改进并行数据库的数据处理功能,其根本性问 Hado框架来获得较好的容错性和对异构环境的 题——可扩展能力和容错能力并未改变. 支持:通过将査询尽可能推入数据库中执行来获得 52 Mapreduce主导型 关系数据库的性能优势. H ado opD B的思想是深远 该方向的研究主要集中于利用关系数据库的的但目前尚无应用案例,原因在于:(1)其数据预 SQL接口和对模式的支持等技术来改善 M apReduce处理代价过高:数据需要进行两次分解和一次数据 的易用性代表系统是Hive、 Pig lat in1等 库加载操作后才能使用;(2)将查询推向数据库层 Hie是 Facebook提出的基于 Hadoop的大型只是少数情况,大多数情况下,查询仍由Hive完 数据仓库,其目标是简化 H adop上的数据聚集、成因为数据仓库查询往往涉及多表连接,由于连接 adt hoc查询及大数据集的分析等操作,以减轻程序的复杂性,难以做到在保持连接数据局部性的前提 员的负担它借鉴关系数据库的模式管理、SQL接下将参与连接的多张表按照某种模式划分;(3)维 口等技术,把结构化的数据文件映射为数据库表提护代价过高.不仅要维护 H ado op系统还要维护每 供类似于SQL的描述性语言 Hive QL供程序员使个数据库节点:(4目前尚不支持数据的动态划分,需 用可自动将 Hive QL语句解析成一优化的Ma要手工方式将数据一次性划分好总的来说,H pReduce任务执行序列此外,它也支持用户自定义 do opD B在某些情况下,可以同时实现关系数据库 的 Map Reduce函数 的高性能特性和 M maPreduce的扩展性、容错性,但 Pig lat in是Yaoo!提出的类似于Hive的大同时也丧失了关系数据库和 M ap Reduce的某些优 数据集分析平台.两者的区别主要在于语言接口.点,比如 MapReduce较低的预处理代价和维护代 Hie提供了类似sQL的接口, Pig latin提供的是价、关系数据库的动态数据重分布等 种基于操作符的数据流式的接口.图3是Pig Vertica采用的是共存策略:根据 H adop和 Latin在处理查询时的一个操作实例该查询的目的 Vertica各自的处理优势,对数据处理任务进行划 是找出“年龄在18-25周岁之间的用户(Ues)最分.比如Hap负责非结构化数据的处理, Vertica 频繁访问的5个页面( Pages)”从图3可以看出,负责结构化数据的处理:Had Pig提供的操作接口类似于关系数据库的操作符复杂处理,Ⅴ erica负责高性能的交互式查询等,从 (对应图中右侧部分中的每一行命令),用户查询的而将两者结合起来Ⅴ erica实际采用的是两套系统 脚本类似于逻辑查询计划(对应图中左侧部分).因同时支持在M甲Rede任务中直接访问Ⅴ erica数 此也可以说Pig利用操作符来对 Hadoop进行封据库中的数据.由于结构化数据仍在 Vertica中处 装,Hive利用SQL进行封装 理,在处理结构化大数据上的查询分析时,仍面临扩 53 Mapreduce和并行数据库集成型 展性问题:如果将查询推向 Hadoop进行,又将面临 该方向的代表性研究是耶鲁大学提出的性能问题因此Ⅴ erica的扩展性问题和 H adop 1gpge201商出化为H)h的性能间题在该系统中基存uhp/www.cnki.net该框架允许用户使用 C+ + 、java、Python 等语言编 写 MapReduce 函数, 编写的函数可以作为一个子查 询在 SQL 中使用, 从而同时获得 SQL 的易用性和 MapReduce 的开放性. 不仅如此, Aster Data 基于 MapReduce 实现了 30 多个统计软件包, 从而将数 据分析推向数据库内进行( 数据库内分析) , 大大提 升了数据分析的性能. Greenplum 也在其数据库中引入了 M apReduce 处理功能 [ 16] . 其执行引擎可以同时处理 SQ L 查询 和 MapReduce 任务. 这种方式在代码级整合了 SQL 和 MapReduce: SQ L 可以直接使用 M apReduce 任 务的输出, 同时 M apReduce 任务也可以使用 SQL 的查询结果作为输入. 总的来说, 这些系统都集中于利用 M apReduce 来改进并行数据库的数据处理功能, 其根本性问 题)) ) 可扩展能力和容错能力并未改变. 5. 2 MapReduce 主导型 该方向的研究主要集中于利用关系数据库的 SQ L 接口和对模式的支持等技术来改善 M apReduce 的易用性, 代表系统是 Hive [ 17] 、Pig Latin [ 18] 等. Hiv e 是 Faceboo k 提出的基于 Hadoop 的大型 数据仓库, 其目标是简化 Hadoo p 上的数据聚集、 ad-hoc 查询及大数据集的分析等操作, 以减轻程序 员的负担. 它借鉴关系数据库的模式管理、SQL 接 口等技术, 把结构化的数据文件映射为数据库表, 提 供类似于 SQL 的描述性语言 HiveQL 供程序员使 用, 可自动将 HiveQL 语句解析成一优化的 Ma￾pReduce 任务执行序列. 此外, 它也支持用户自定义 的 MapReduce 函数. Pig Latin 是 Yahoo ! 提出的类似于 Hiv e 的大 数据集分析平台. 两者的区别主要在于语言接口. Hive 提供了类似 SQL 的接口, Pig Latin 提供的是 一种基于操作符的数据流式的接口. 图 3 是 Pig Latin 在处理查询时的一个操作实例. 该查询的目的 是找出/ 年龄在 18~ 25 周岁之间的用户( U sers) 最 频繁访问的 5 个页面( Pages)0. 从图 3 可以看出, Pig 提供的操作接口类似于关系数据库的操作符 ( 对应图中右侧部分中的每一行命令) , 用户查询的 脚本类似于逻辑查询计划( 对应图中左侧部分) . 因 此, 也可以说 Pig 利用操作符来对 Hadoop 进行封 装, Hive 利用 SQL 进行封装. 5. 3 MapReduce 和并行数据库集成型 该方向 的代 表性 研究 是耶 鲁大 学提 出 的 HadoopDB [ 19] ( 已于 2011 年商业化为 Hadapt [ 20] ) 、 图 3 Pig Latin 的一个查询示例( 右边为实际脚本) Stonebraker 等人设计的 V ertica [ 21] 数据库和 N CR 公司的 T er adata [ 22] 数据库. Hado opDB 的核心思想是利用 H adoop 作为调 度层和网络沟通层, 关系数据库作为执行引擎, 尽可 能地将查询压入数据库层处理. 目标是想借助 Hado op 框架来获得较好的容错性和对异构环境的 支持; 通过将查询尽可能推入数据库中执行来获得 关系数据库的性能优势. Hado opDB 的思想是深远 的, 但目前尚无应用案例, 原因在于: ( 1) 其数据预 处理代价过高: 数据需要进行两次分解和一次数据 库加载操作后才能使用; ( 2) 将查询推向数据库层 只是少数情况, 大多数情况下, 查询仍由 Hive 完 成. 因为数据仓库查询往往涉及多表连接, 由于连接 的复杂性, 难以做到在保持连接数据局部性的前提 下将参与连接的多张表按照某种模式划分; ( 3) 维 护代价过高. 不仅要维护 Hado op 系统, 还要维护每 个数据库节点; ( 4) 目前尚不支持数据的动态划分,需 要手工方式将数据一次性划分好. 总的来说, Ha￾do opDB 在某些情况下, 可以同时实现关系数据库 的高性能特性和 M apReduce 的扩展性、容错性, 但 同时也丧失了关系数据库和 M apReduce 的某些优 点, 比如 M apReduce 较低的预处理代价和维护代 价、关系数据库的动态数据重分布等. Vertica 采用的是共存策略: 根据 Hadoo p 和 Vertica 各自的处理优势, 对数据处理任务进行划 分. 比如 H adoop 负责非结构化数据的处理, Vertica 负责结构化数据的处理; Hadoop 负责耗时的批量 复杂处理, Vertica 负责高性能的交互式查询等, 从 而将两者结合起来. Vertica 实际采用的是两套系统, 同时支持在 M apReduce 任务中直接访问 Vertica 数 据库中的数据. 由于结构化数据仍在 Vertica 中处 理, 在处理结构化大数据上的查询分析时, 仍面临扩 展性问题; 如果将查询推向 Hadoop 进行, 又将面临 性能问题. 因此, Vertica 的扩展性问题和 H adoop 的性能问题在该系统中共存. 1746 计 算 机 学 报 2011 年
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有