Apache Hive是基于Hadoop生态系统的旗舰数据仓库工具。它不仅将构造化的数据文件映射到数据库表,而且还供应SQL(HQL)查询功能(例如SQL语句)并将SQL语句转换为MapReduce任务以供实行。
它是由Facebook开拓的,于2008年进入Apache孵化器,并于2010年9月成为顶级Apache项目。背后的事理是利用熟习的SQL模型来处理HDFS(Hadoop)上的数据。借助Hive,学习本钱低,并且可以通过HQL语句快速转换大略的MapReduce统计信息,而无需担心开拓其他分外的MapReduce运用程序。
Hive非常方便地在全体企业范围内对数据仓库进行建模和构建,而Hive SQL模型则可以对数据仓库中的数据进行统计和剖析。

但是,Hive的底层被转换为MR,而MR的改组依赖于系统磁盘,因此它只能处理离线剖析,这效率相对较低,在开拓职员社区中不可接管。Hive常日利用Hive在全体组织中构建数据仓库。
Apache SparkSQLApache SparkSQL是紧张的Spark组件构建,用于处理构造化数据。Spark SQL于2014年发布,并接管了Hive-on-Spark项目,该项目现在是利用最广泛的Spark模块。它供应了一个称为DataFrames的可编程抽象数据模型,并被视为分布式SQL查询引擎。
SparkSQL取代了Hive的查询引擎,但也与hive系统兼容。关于Spark RDD API,Spark SQL供应的接口将为Spark供应有关构造化数据和打算的更多信息。SparkSQL最底层是Spark Core,它使您可以轻松地在不同的SQL和API之间切换。
PrestoPresto是一个分布式数据查询引擎,但从不存储数据本身Presto将供应对多个数据源的访问,并支持跨不同数据源的级联查询。它是一个分布式SQL交互式查询引擎,它也在2012年由Facebook开拓,并于2013年开源。
Presto是一种OLAP工具,适用于海量数据的繁芜剖析,但不适用于OLTP方案。Presto仅供应打算和剖析功能,而不能用作数据库系统。
就Hive而言,Presto是一种低延迟,高并发性的内存打算引擎。它的实行效率比Hive高得多。它的MPP(大规模并行处理)模型可以处理PB级数据。Presto的事理只是将一些数据放入内存中进行打算,完成后将其取出,然后再次处理其他一些数据,例如循环和类似于管道处理模式。
Apache KylinApache Kylin是针对Hadoop生态系统的开源分布式剖析引擎。其针对Hadoop / Spark的SQL查询接口和OLAP功能广泛支持超大规模数据。它利用基于多维数据集的估量算技能,该技能可快速高效地处理大数据SQL查询。Kylin由eBay开拓,并于2014年11月进入Apache孵化器。
凯林(Kylin)的涌现是为理解决剖析须要的TB数据。它可以在蜂巢中预先打算数据,并利用Hadoop的MapReduce框架履行。它可以在几秒钟内查询大量的Hive表。
麒麟最关键的两个过程是
多维数据集的估量算过程,并将SQL查询转换为多维数据集。此外,在查询时要预先打算汇总结果并同时得到查询结果,避免直接扫描。Apache Impala与其他框架比较,它是用于大数据的实时交互式SQL查询引擎。Apache Impala是由Cloudera开拓的SQL MPP查询工具,受Google Dremel的启示,后来于2012年10月开源,并于2017年11月28日成为顶级项目。
Impala利用完备开放且不同的形式集成到Hadoop生态系统中,从而使其利用者可以利用SQL来处理Hadoop生态系统中的大量数据。
目前,它支持多种类型的存储选项,例如:
Apache Kudu亚马逊S3微软ADLS本地存储它出身时仅支持对大量HDFS数据的交互式剖析。它的灵巧性和领先的剖析数据库性能促进了在环球企业中的大量支配。
Ir为企业业务供应BI和交互式SQL高效剖析,并许可第三方生态系统快速增长。
Apache DruidApache Druid是用于实时数据剖析的开源工具,旨在快速处理大规模数据。它的分布式实时剖析通过快速查询和大规模数据集办理了繁芜的任务。
2018年2月28日进入Apache孵化器。它供应了以交互办法访问数据的功能。进入Druid系统后,可以实时摄取数据并立即进行验证。输入的数据a险些是不可变的。常日是基于韶光顺序的事实事宜。
Elastic Search它是一个分布式,可伸缩的实时搜索和剖析引擎。它由Shay Banon于2010年建造,后来开源。它具有全文搜索引擎的功能,并具有RESTful Web界面的分布式多用户支持。
ES的事情事理紧张分为以下几个步骤。
首先,用户将数据输入ES数据库然后利用分词掌握器对相应的句子进行分段存储细分结果的权重。当用户搜索特天命据时,将根据权重对结果进行排名和评分,然后返回给用户。ES是完备用Java开拓的,并且是当前最受欢迎的企业搜索引擎。
它稳定,可靠,快速且易于安装,专为在云打算环境中利用而设计。
官方客户供应以下措辞版本
Java.NET(C#)PHPPythonApache GroovyRubyApache HAWQApache HAWQ(带有查询的Hadoop)是Hadoop本机并行SQL剖析引擎。它是Pivotal在2012年推出的具有商业容许的高性能SQL引擎。
它是Hadoop的本机SQL查询引擎,结合了MPP数据库的技能上风,巨大的可扩展性和Hadoop的便利性。
履历证,HAWQ的OLAP性能是Hive和Impala的4倍以上。它非常适宜在Hadoop平台上快速构建数据仓库系统。
HAWQ具有以下功能,例如
大规模并行处理完备的SQL兼容性,支持存储过程和事务。它也可以轻松地与其他开源数据挖掘库(如MADLib)集成。
Apache LuceneApache Lucene是基于Java的开源全文搜索引擎工具箱。它是功能最强大且被广泛采取的搜索引擎。Lucene不是完全的搜索引擎,而是全文搜索引擎体系构造,利用此原型,您可以制造其他搜索引擎产品。它是一种全文本搜索引擎体系构造,可供应完全的索引创建和查询索引以及文本分析引擎。
Lucene的目标是为软件开拓职员供应一个大略易用的工具包,以促进在所需系统中实现全文搜索功能,乃至基于此原型构建完全的全文搜索引擎。它供应了一个大略但功能强大的运用程序编程接口(API),可以进行全文索引和搜索。
Apache SolrApache Solr是一个基于Apache Lucene架构的开源企业搜索平台。它于2004年发布,于2007年1月17日成为Apache顶级项目。
它的高可靠性,可伸缩性和容错能力供应分布式索引,复制和负载平衡查询,自动故障转移,规复和集中式配置。它是一个完备用Java措辞编写的独立全文搜索做事器,并在Servlet容器环境(Apache Tomcat或Jetty)中运行。
Solr依赖Lucene Java搜索库进行全文索引和搜索,并利用HTTP / XML和JSON API实行类似REST的操作。Solr强大的外部配置功能使其无需利用Java措辞即可进行调度,以适宜多种类型的软件。Solr支持许多大型Internet企业站点的搜索和导航功能。
Apache PhoenixApache Phoenix是基于HBase的SQL类型框架。Apache Phoenix JDBC API取代了传统的HBase客户端API的需求,它还创建表,插入数据和查询HBase数据。基本上,这是Java中间层,许可开拓职员利用HBase中的数据表,例如关系数据库(例如,通过Phoenix的MySQL)。
Phoenix会将SQL查询语句编译为一系列Scan操作,并天生JDBC结果集并将其返回给做事利用者。它使您能够利用根本层,例如HBase协处理器和过滤器。无论数据相应韶光以秒为单位,小规模查询都会以毫秒为单位进行相应。
(本文由闻数起舞翻译自Max Tagher的文章《Big data & open source query and analysis frameworks》,转载请注明出处,原文链接:https://medium.com/cloud-believers/big-data-open-source-query-and-analysis-frameworks-9ff0ab722a0a)