转载自: http://www.csdn.net/article/2012-10-25/2811151

Cloudera Impala:基于Hadoop的实时查询开源项目

发表于11小时前| 3663次阅读| 来源CSDN| 1 条评论| 作者刘江

HadoopImpalaDremelCloudera大数据
摘要:号外!Cloudera发布了实时查询开源项目Impala!多款产品实测表明,比原来基于MapReduce的Hive SQL查询速度提升3~90倍。Impala是Google Dremel的模仿,但在SQL功能上青出于蓝胜于蓝。

正在纽约进行的大数据技术会议Strata Conference + Hadoop World传来消息,Cloudera发布了实时查询开源项目Impala 1.0 beta版,称比原来基于MapReduce的Hive SQL查询速度提升3~90倍(详情可以参考此文中的“How much faster are Impala queries than Hive ones, really?”部分),而且更加灵活易用。Impala是高角羚的意思,这种羚羊主要分布在东非。

同时,这个项目也将以Cloudera Enterprise RTQ(Real-Time Query)为名进入CDH发行版。可以部署到生产环境的版本将到2013年一季度就绪。不过,据ComputerWorld和MarketWatch的报道,Capgemini金融服务、Karmasphere、MicroStrategy、Pentaho、Qlikview和Tableau等已经在Impala上做了几个月的实际产品测试。

众所周知,Hadoop及HBase、HDFS其实是在Google的MapReduce、BigTable和GFS三篇论文的启发下开发出来的。而近年来Google的基础架构又有了一波新的革新,有媒体称之为后Hadoop时代的三驾马车Caffeine、Pregel和Dremel。当然,这种说法有混淆了辈份之嫌,而且并不十分科学。Pregel是图数据库,据说在MapReduce之外担负了另外20%的数据处理任务,与三大论文之间没有承继关系。项目的创始人之一Grzegorz Malewicz去年来过北京,是Hadoop in China大会的主题演讲嘉宾。今年加盟了Facebook。前几天我在GTalk里询问他的近况,他说正在开发Pregel的开源版本。其实某种程度上,Caffeine是MapReduce的演进,在今年OSDI上大火的Spanner可以视为BigTable的演进,而Dremel则是新出的。

无论如何,有了好东西,开源社区当然会很快跟进,仿照Dremel的Apache Drill项目已经进行一段时间了。而Cloudera在官方博客中也明确承认,“对每个Hadoop用户都具有革命性的技术”Impala是在Dremel的启发下开发的。也就是说,Impala不再使用缓慢的Hive+MapReduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或者HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。其架构如下图所示。

Impala的架构(来自ZDNet)

Impala采用与Hive相同的元数据、SQL语法、ODBC驱动程序和用户接口(Hue Beeswax),这样在使用CDH产品时,批处理和实时查询的平台是统一的。目前支持的文件格式是文本文件和SequenceFiles(可以压缩为Snappy、GZIP和BZIP,前者性能最好)。其他格式如Avro, RCFile, LZO文本和Doug Cutting的Trevni将在正式版中支持。

博客同时还比较了Impala与Dremel。文中说:

Dremel之所以能在大数据上实现交互性的响应速度,是因为使用了两方面的技术:一是对有嵌套结构的嵌套关系型数据采用了全新的列式存储格式,一是分布式可扩展统计算法,能够在几千台机器上并行计算查询结果。

而后一技术是从并行关系型数据库那里借鉴而来的。与2010年Dremel论文只能处理单表查询相比,Impala已经能够支持完整的JOIN操作。此外,除了Trevni列式存储格式之外,Impala还支持广泛的其他格式。也就是说:

Impala+Trevni已经完全实现了Dremel论文中的查询性能,而且在SQL功能上还超过了它。

文章也强调Impala并不会取代传统的数据仓库和MapReduce+Hive。数据仓库在对数量有限的结构化数据集做复杂的分析处理时仍然更加适用,而长期运行的数据转换负载还是MapReduce的用武之地。

有意思的是,这篇官方博文的作者之一是Impala的架构师Marcel Kornacker,在加盟Cloudera之前,是Google F1项目查询引擎的主开发人员,F1项目的任务,正是将AdWords的存储从MySQL转到Spanner。

Impala的主要资源

  • 源代码下载:http://github.com/cloudera/impala
  • 二进制:https://ccp.cloudera.com/display/SUPPORT/Downloads
  • 文档:https://ccp.cloudera.com/display/IMPALA10BETADOC/Cloudera+Impala+1.0+Beta+Documentation
  • 邮件列表:mailto:impala-user@cloudera.org

Cloudera Impala:基于Hadoop的实时查询开源项目相关推荐

  1. 基于STC51:四轴飞控开源项目原理图与源码(入门级DIY)

    目录 前言(作者:宏晶科技) 一.飞控配件 二.接线 三.原理图 四.调试 五.程序 六.完整工程.原理图文件获取 前言(作者:宏晶科技) 本飞控仅仅是姿态飞行控制,没有GPS.电子罗盘.气压高度计. ...

  2. FAST:基于FPGA的SDN交换机开源项目

    自1983年自由软件运动领袖Richard Stallman提出了GNU计划以来,开源为软件开发带来了创造性的革命和商业成功.SDN如今的快速发展也离不开开源社区的力量,比如NOX.Floodligh ...

  3. 基于.NET Core的优秀开源项目合集

    开源项目非常适合入门,并且可以作为体系结构参考的好资源, GitHub中有几个开源的.NET Core项目,这些项目将帮助您使用不同类型的体系结构和编码模式来深入学习 .NET Core技术, 本文列 ...

  4. 如何高效阅读 Spark 和 Hadoop 这类大型开源项目源代码?

    我自己看过HDFS以及HDFS Raid的源码,其他的偶尔也看一下. 个人感觉大致以下一些步骤吧: 看官方网站的描述,知道项目的定位.功能.常见用例. 搜集文档,与项目相关的论文.整体架构文档.某些重 ...

  5. 耳听也不为实了,基于谷歌SV2TTS算法的开源项目在GITHUB登顶

    近日谷歌的论文SV2TTS(https://arxiv.org/pdf/1806.04558.pdf)在不论是在学术界还是在开源社区都引发热议,SV2TTS号称可以使用低分辨率的原音信息,在短时间内完 ...

  6. 分享一个基于GPT-3.5 Turbo的开源项目,界面简洁大气,反应速度快

    今天在github又发现一个国内的大神开源的chatGPT项目.先看看整体的效果如何吧. 这个项目是基于OpenAI GPT-3.5 Turbo API 的demo. 本地部署 环境准备 安装node ...

  7. 成绩查询系统源java代码_基于jsp的成绩查询系统-JavaEE实现成绩查询系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的成绩查询系统, 该项目可用各类java课程设计大作业中, 成绩查询系统的系统架构分为前后台两部分, 最终实现在线上 ...

  8. JAVA实现查询系统_基于jsp的车辆查询系统-JavaEE实现车辆查询系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的车辆查询系统, 该项目可用各类java课程设计大作业中, 车辆查询系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. 分享6个国内优秀Java后台管理框架的开源项目

    分享6个国内优秀Java后台管理框架的开源项目,建议收藏! Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数 ...

最新文章

  1. springcloud使用pagehelper 实现分页,及total 数据问题
  2. [watevrCTF-2019]Pickle Store
  3. 单片机 原子性操作_一款深藏功与名的国产单片机——F1C100A
  4. 建议收藏丨sql行转列的一千种写法!!
  5. PCI总线原理(二)
  6. VS2005-此计算机上已安装了试用版。必须先卸载以前安装的试用版后才能安装另一个试用版
  7. 数据库专家:MySQL分片水很深
  8. RotateCard(自定义旋转view)
  9. MVC5为WebAPI添加命名空间的支持
  10. 防病毒必务宝典—计算机病毒专杀进程列表(转)
  11. 线和面的方程区别_平面方程和直线方程的区别?
  12. fly.js 的二次封装
  13. Arch yaourt 安装
  14. 期权最新高频行情数据
  15. 数据库备份还原与分离附加
  16. android 监听wifi的连接状态,Android判断wifi状态 监听wifi连接
  17. python 二维码制作
  18. P7-Windows与网络基础-虚拟机基本操作
  19. 【Flink】JobManager memory configuration failed: Sum of configured JVM Metaspace (256.000mb
  20. 可持久化线段树13(区间内只出现一次的数)

热门文章

  1. 【安装篇】mac使用工具远程控制windows电脑
  2. 15款Python编辑器,你喜欢用哪一款?
  3. TensorRT与pycuda配置运行yolov3
  4. 使用 JavaScript 的响应式计数器动画
  5. 达梦dmfldr快速加载报col nums in data file is not enough错误
  6. Jackson反序列化
  7. 专家推荐Java期末作业——王者荣耀的洛克王国版游戏
  8. ProxmoxVE6.2 虚拟机导入导出
  9. 谷歌浏览器登录失败,提示【无法同步到“...@gmail.com”】
  10. ChatGPT 各类 Prompt 整理