自从 Google 的 Dremel 论文发表以来,Hadoop 社区已经在尝试围绕 Hadoop 实现类似功能。首先出现的是 OpenDremel ,目前它已经是 Apache Drill 的一部分,而后者已于去年成为 Apache 孵化项目。之后,也是在去年,Cloudera 引入了 Impala ,目前仍处于 beta 状态,它还是 Cloudera Hadoop 发布版——CDH 4.1 的一部分。
Stinger Initiative 是该领域新的竞争者,由 Hortonworks 于上周引入 Apache 的孵化过程,其目标是:
让 Hive 能在人的响应时间内处理很多用例(也就是 5-30 秒这一区间范围内的查询)——如大数据的查看、可视化和参数化报表——而无需安装、维护和学习其他工具,这能够为拥有 Hive 技巧和投资的大型社区带来很多价值。
Hortonworks 打算通过以下手段实现该目标:
- 改进 Hive 的 SQL 兼容性,包括支持 Hive 中没有的 SQL 类型和‘where’子句中的子查询。
- 优化 Hive 的执行计划。
- 支持新的 Hadoop 列格式 ORCFile(类似于 Dremel、Drill 和 Cloudera 的 Trevini )。
- 引入基于 YARN 的新的运行时框架 Tez 。
Tez 是北印度语的“速度(speed)”,该项目还处于等待投票成为 Apache 孵化项目的阶段。它是:
……一种通用的、高度可定制的框架,用于简化 Hadoop 中数据处理任务的创建,支持小规模(低延迟)和大规模(高吞吐量)负载。通过提供为一个作业执行复杂 DAG(有向无环图)任务的能力,它将 MapReduce 范型推广为一种更强大的框架,这样 Apache Hadoop 生态系统中的项目(如 Apache Hive、Apache Pig 和 Cascading)就能满足人机交互响应时间和 PB 级规模极端吞吐量的需求了(无疑 MapReduce 是实现这一点的关键驱动因素)。
当前的三个“实时”Hadoop 查询实现——Drill、Impala 和现在的 Stinger 或是已经开源,或是很快就会开源,都将能够利用社区的支持和投入来解决实时 Hadoop 查询的重要问题。
查看英文原文: Competition between Real-time Hadoop Implementations Heats Up
评论