Berkeley的博士,此人领导了Shark的开发(在加州伯克利分校AMP实验室)。
本文只做翻译,不对两个系统的优劣做评价。
[b]总体上[/b]
Shark扩展了Apache Hive,大大加快在内存和磁盘上的查询。而Impala是企业级数据仓库系统, 可以很好地使用Hive/ HDFS,从架构层来说,类似于传统的并行数据库。这两个系统有着很多共同的目标,但也有很大差异。
[b]与现有系统的兼容性[/b]
Shark直接建立在Apache/Hive代码库上,所以它自然支持几乎所有Hive特点。它支持现有的Hive SQL语言,Hive数据格式(SerDes),用户自定义函数(UDF),调用外部脚本查询。因为Impala使用自定义的C++运行,它不支持Hive UDF。这两个系统将会与许多BI工具整合,这一直是Impala的主要目标。Shark正在被用于一些BI工具,如Tableau,不过这并没有被探索更多。
[b]内存中的数据处理[/b]
Shark允许用户显式地加载在内存中的数据,以加快查询处理,其内存使用有效率的,压缩的面向列的格式。Impala还没有提供在内存中的存储。
[b]容错[/b]
Shark被设计为支持短期和长时间运行的查询。它可以从查询故障恢复(感谢底层Spark引擎)。Impala目前是更侧重于短查询,不容错(如果节点发生故障,查询必须重新启动,对短查询来说这无疑是可以接受的)。
[b]性能[/b]
做全面的比较太早了点。Shark和Impala都报告比Hive快10-100倍,但这都依赖具体情况和系统负载。两个项目也都在未来6个月内会做重要优化。以我们的经验来看,Sharkr当前版本,如果是内存的数据一般比Hive快100倍,如果是磁盘上的数据一般快5-10倍,这取决于查询(带关联连接的查询,能比Hive快很多)。
[b]目标用户[/b]
在我们的理解中,Impala是相当专注于传统企业客户和OLAP和数据仓库工作负载。Shark支持传统OLAP,但也投入了精力,以支持更复杂的Hive使用(如UDF),非结构化数据处理(如ETL),机器学习等先进的分析(通过集成Spark)。Shark的长期目标是有一个统一的系统,既支持SQL也支持高级分析(机器学习,统计等等)。
[b]开发语言[/b]
Shark是用Java和Scala写的,运行在JVM上。Impala是用c++写的。Impala会将查询编译成LLVM(底层虚拟机)中间表示法,它可以由即时编译器做进一步优化。Shark查询被编译成JVM字节码。
[b]开放源码[/b]
这两个系统都是开源(Apache许可)。Shark开始于加州大学伯克利分校,已经从公司如雅虎接受了重大贡献资助。Impala是在Cloudera开发的,并于最近发布。
impala和yarn有没有关系 impala和spark的性能差异
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
OSPF的邻居关系和邻接关系
ospf邻居与邻接
OSPF 多址 邻接关系