Shark大数据实时查询分析利器
Shark SQL查询比Hive快100倍,机器学习比Hadoop快100倍
作者是Ben Lorica 2012-07-27
Ben Lorica的是O'Reilly Media公司的首席数据科学家,他致力于包括直销,消费者和市场的研究,有针对性的广告,文本挖掘,金融工程中的商业智能,数据挖掘,机器学习和统计分析。他的背景包括任职于一家投资管理公司,互联网创业和金融服务。
原文:
http://strata.oreilly.com/2012/11/shark-real-time-queries-and-analytics-for-big-data.html
Hadoop的优势在于批处理,MapReduce不是特别地适合交互式即席查询分析。实时SQL查询(基于Hadoop数据)通常使用特定的MPP(大规模并行处理)数据库连接器而被执行。实践中这也意味着在独立的Hadoop和数据库集群之间有连接器存在。过去几个月中,一些可以快速SQL访问Hadoop集群的系统引起了人们的注意,而Hadoop和快速MPP数据库集群之间的桥梁连接器不会消失。不过人们将越来越大的兴趣转移许多交互式SQL工作到那些系统中,这些系统有着与Hadoop集群共存并在相同的集群上。
Hadoop集群支持快速/交互式SQL查询可以追溯到几年以前,HadoopDB--一个出自耶鲁大学的开源项目。HadoopDB的创造者,因此开办了一个商业软件公司(Hadapt),建立一个统一的Hadoop/ MapReduce和SQL的系统。在Hadapt,Postgres的数据库放置在Hadoop集群的节点上,这个系统因此可以使用MapReduce,SQL和搜索(SOLR)。现在的版本是2.0,Hadapt的是一个有容错能力的系统,并自带分析功能(HDK),人们可以通过SQL使用。
开源系统
本文的剩余部分涉及到两个相对新的开源工具:Impala和Shark. 自从Impala在Strata NYC发布之后,由Cloudera的Impala系统产生的热门话题强调大数据社区有多么的想要一个在Hadoop中的实时查询系统,自从它发布之后,也出现了很多好的文章,所以我就不进入它的设计细节了。我将强调的是由Cloudera公布的令人印象深刻的性能数字。
对于纯粹的I/O限制查询,我们清楚地看到性能提升了3-4倍. 对于那些至少有一个join的查询,我们看到性能提升了7-45倍。如果数据访问是通过来自cache的查询,速度将会更令人激动,感谢Impala的出色效率。在那些情景中,我们看到了比Hive快20-90倍的速度,甚至在一些简单的聚合查询中也能达到。
进入Shark
Shark是Spark的一个组件,一个开源的、分布式的,容错的,基于内存的分析系统。它能被安装在与Hadoop相同的集群上。特别是,Shark完全兼容Hive,并支持HiveQL, Hive数据格式以及udf函数。此外Shark也能被用于查询HDFS, HBase和Amazon S3数据。
Shark的创造者刚刚发表了一篇文章,在这片文章中系统的比较了Shark与Hive, Hadoop和MPP数据库的性能。他们发现在各种查询中Shark比Hive要快得多,大概来说,基于磁盘数据,Shark比Hive快5-10倍,而在内存中Shark快100倍. 值得注意的是,Shark的性能提升可以与那些观察到的MPP数据库相媲美。
在这个阶段用户至少有两个可用的开源系统用于Hadoop中的快速交互SQL查询,而Impala更被人所注意,Shark团队已经一起静静地发布了一个高度可伸缩的系统,具有引人注目的特点,包括数据协同分块,容错,在分析者的工作流中集成了机器学习。
内存中列存储和列压缩
使用Impala的最好性能提升是通过使用Trevni列存储格式获得的。至于Shark,他们定制的列存储和压缩格式减少了大约5倍的存储和查询时间。
控制数据分块,快速分布式Join
Shark让用户分区表使用指定的key. 特别是表如果会被频繁join, 那么我们将这些表用共同的(join)key分区。协同分区是一种被许多MPP数据库为了加快大表joins查询速度而采用的技巧。
容错
Shark能够优雅地从节点失败恢复,在重构丢失数据分区后继续执行查询。在最初大数据集上做的测试指出恢复会有一点小的性能影响(但这还是比重新执行这个查询要快得多)。
SQL优化
Shark已经实现了一个简单的SQL优化器(偏有向无环图partial DAG, partial directed acyclic graph执行或者偏微分方程partial differential equations),当需要时它是利用数据统计(要人,近似直方图)去动态地调整查询计划。有一个例子,Shark的偏微分方程系统为join使用了数据统计去实现运行时间优化。
机器学习支持
弹性分布式数据集(RDD,Resilient Distributed Datasets)是被缓存在内存中的对象,能够在整个集群计算节点使用。他们是使用在Spark中的基础数据对象。用户能创建RDD(使用sql2rdd命令),应用这个到机器学习功能,所有这些都是在Shark内部完成。当前能用Scala和Java写机器学习和分析功能,将来还能支持Python.用户不仅是执行简单SQL查询语句能够得到好处,在相同框架下复杂计算也能加速,Shark比Hadoop快100倍。
集成BI工具
Impala集成了Tableau和Qlikview. 有一些Shark用户用Tableau工具使用它,不过目前,BI集成相对来说还是Shark的“未探索”领域。
总结
Impala和Shark都是Hadoop的交互SQL系统。一份新报纸展现了:比较那些可观察到的MPP数据库,Shark提供了加速。此外比Hive在SQL快100倍,Shark还是在机器学习算法方面(迭代计算)比Hadoop快100倍的一个框架。
分享到:
相关推荐
- shark:鲨鱼 - seal:海豹 - sperm whale:抹香鲸 - killer whale:虎鲸 5. 人物: - friend:朋友 - boy:男孩 - girl:女孩 - mother:母亲 - father:父亲 - sister:姐妹 - brother:兄弟 - ...
- shark:鲨鱼 - seal:海豹 - sperm whale:抹香鲸 - killer whale:虎鲸 - kangaroo:袋鼠 5. 人物(People): - friend:朋友 - boy:男孩 - girl:女孩 - mother:母亲 - father:父亲 - sister:...
- 鲨鱼:shark - 海豹:seal - 抹香鲸:sperm whale - 虎鲸:killer whale 5. **人物(people)** - 朋友:friend - 男孩:boy - 女孩:girl - 母亲:mother - 父亲:father - 姐妹:sister - 兄弟:...
本演示文稿主要介绍了如何使用Spark堆栈进行实时分析处理(Real-Time Analytical Processing, RTAP)。该项目由加州大学伯克利分校的AMPLab发起,并得到了Intel的紧密合作和支持。AMPLab是一个在大数据领域具有高度...
- shark/'ʃɑ:k/:鲨鱼 - seal/ si:l /:海豹 5. 人物: - friend/frend/:朋友 - boy/ bɔi /:男孩 - girl/gə:l/:女孩 - mother/'mʌðə/:母亲 - father/'fɑ:ðə/:父亲 - sister/'sistə/:姐妹 ...
- shark /'ʃɑ:k/: 鲨鱼 - seal / si:l /: 海豹 掌握这些动物词汇,能丰富孩子们的词汇量,并且有助于他们了解不同种类的动物,培养对生物的兴趣。 五、人物(people) - friend /frend/: 朋友 - boy / bɔi /: ...
shark-1.1-2 是Shark最后的开源工作流源代码,以后再也没有了。学习工作流非常好的资料
2014年Spark Summit于6月30日至7月2日在美国旧金山举行。Spark、Shark、Spark流媒体和相关项目及产品的主要用户聚集一地,共同探讨Spark项目开发的方向,以及Spark在各种各样应用程序中的实践情况。
"Shark1.1-2安装文件"是一个与"shark"相关的软件安装包,它由多个分卷RAR文件组成,这些文件分别是:shark-1.1-2.setup.part01.rar、shark-1.1-2.setup.part04.rar、shark-1.1-2.setup.part07.rar、shark-1.1-2....
《深入解析Shark 1.1-2源代码:揭示数据处理的工作流程》 Shark 1.1-2是一款历史悠久的数据处理框架,其源代码的公开为开发者提供了宝贵的参考资料,帮助他们理解大数据处理的核心机制。这个压缩包包含了完整的源...
shargs-例如同步-deepthought是一个示例应用程序 :shark: . 有关更多详细信息,请参阅!设置$ git clone https://github.com/Yord/shargs-example-sync-deepthought.git$ cd shargs-example-sync-deepthought$ npm i...
shargs-示例-异步-deepthought是一个示例应用程序 :shark: . 有关更多详细信息,请参阅!设置$ git clone https://github.com/Yord/shargs-example-async-deepthought.git$ cd shargs-example-async-deepthought$ ...
shargs-example-sync-sql 是的示例应用程序 :shark: . 有关更多详细信息,请参阅! 设置 $ git clone https://github.com/Yord/shargs-example-sync-sql.git $ cd shargs-example-sync-sql $ npm i $ chmod +x ./...
在提供的压缩包文件名称列表中,我们看到了一系列分块的 rar 文件,如 "shark-1.1-2.setup.part09.rar" 到 "shark-1.1-2.setup.part14.rar"。这表明安装文件被分割成了多个部分,可能是因为原始文件大小超过了单个...
shargs-tutorial-git 是入门教程 :shark: . 有关更多详细信息,请参阅! 代码 我们将在本教程中编写的代码可用作此存储库中的git脚本。 要运行它,首先要设置依赖项: $ git clone ...
2014年Spark Summit于6月30日至7月2日在美国旧金山举行。Spark、Shark、Spark流媒体和相关项目及产品的主要用户聚集一地,共同探讨Spark项目开发的方向,以及Spark在各种各样应用程序中的实践情况。
shargs-repl 是一个使用命令的 repl :shark: . 有关更多详细信息,请参阅! 安装 $ npm install --save shargs-repl 文档 shargs-repl记录在存储库的。 报告问题 请报告问题! 执照 shargs-repl是MIT 许可的。
shargs-parser-integration-tests 为和运行几个集成测试 :shark: . 有关更多详细信息,请参阅! 运行测试 $ git clone https://github.com/Yord/shargs-integration-tests.git $ cd shargs-integration-tests $ npm...
shargs使用率是用于自动使用文档生成库 :shark: 。 请参阅以获取更多详细信息!安装$ npm install --save shargs-usage文献资料shargs-usage在信息库的“进行了 。报告问题请报告问题! 执照shargs-usage已获得MIT...