技术汇总
Posted badboy200800
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术汇总相关的知识,希望对你有一定的参考价值。
MapReduce
MapReduce程序从磁盘读取输入数据,把数据分解成键/值对,经过混洗、排序、归并等数据处理后产生输出,并将最终结果保存在磁盘。Map阶段和Reduce阶段的结果均要写磁盘,这大大降低了系统性能。也是由于这个原因,MapReduce大都被用于执行批处理任务。Map阶段和Reduce阶段的结果均要写磁盘,系统性能较低。MapReduce大都被用于执行批处理任务。
Hive
最早基于hadoop的数据仓库,在MapReduce之上封装的SQL语义层。比较稳定,可快速处理海量数据,适合后台批处理应用场景。启动较慢,小数据量处理效率不高,不适合交互式即席查询和联机分析。
Spark SQL
SparkSQL是Hadoop中另一个著名的SQL引擎。以Spark作为底层计算框架,实际上是一个Scala程序语言的子集。
开发Spark的初衷是用于机器学习系统的培训算法,而不是SQL查询。Spark宣称其应用的延迟可以比MapReduce降低几个数量级,但是我们的实际使用中,在20TB的数据集合上做SQL查询也要10分钟左右出结果,这个速度纵然是比Hive快了3倍,但显然不能支撑交互查询和OLAP应用。Spark还有一个问题是需要占用大量内存,当内存不足时,容易出现OOM错误。
Impala
Impala是一个运行在Hadoop之上的大规模并行处理(MPP)查询引擎,提供对Hadoop集群数据的高性能、低延迟的SQL查询,使用HDFS作为底层存储。
Impala的最大亮点在于它的执行速度。官方宣称大多数情况下它能在几秒或几分钟内返回查询结果,而相同的Hive查询通常需要几十分钟甚至几小时完成,因此Impala适合对Hadoop文件系统上的数据进行分析式查询。Impala缺省使用Parquet文件格式,这种列式存储对于典型数据仓库场景下的大查询是较为高效的。
Impala的问题主要体现在功能上的欠缺。如不支持update、delete操作,不支持Date数据类型,不支持XML和JSON相关函数。大数据量支持效率也不高,容易出现资源不足。
HAWQ(hadoop with query)
HAWQ是Hadoop原生SQL查询引擎,结合了MPP数据库的关键技术优势和Hadoop的可扩展性和便捷性。HAWQ从HDFS本地读取数据并将数据写入HDFS。
HAWQ提供业界领先的性能和线性可伸缩性。使用HAWQ在Hadoop上开发分析型数据仓库应用是完全可行的。HAWQ比Hive快4-50倍。
Apache Kylin
Apache Kylin?是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。
参考文档:
以上是关于技术汇总的主要内容,如果未能解决你的问题,请参考以下文章