HiveHadoopSQL开源MapReduceImpala大数据初创公司
在GigaOM安排Structure: Data的日程的时候,就意识到很有必要讨论在Hadoop上运行SQL查询,然而却未认识到Hadoop上运行SQL查询竟然变的这么重要。
本文是Gigaom的资深编辑Derrick Harris 撰写的一篇文章,其实,对SQL支持并不是Hadoop的最终目标,但是这一特性将会帮助Hadoop找寻自己的生存方式,让Hadoop在那些已经明白下一代分析的重要性但又不想迈向MapReduce专家之路的公司中取得一席之地。
当然,Facebook发起了整场运动 ——在2009年创造了Hive,它把类似数据库SQL查询功能引向了Hadoop 。Hive现在已经是Apache的一个开源项目,包括数据管理层以及类SQL的结构化查询语言HiveQL。在过去的数年里,Hive的确是非常有用而且很流行,但是由于Hive对MapReduce依赖,查询速度有着“先天性不足”,因为在查询的过程中,MapReduce需要扫描整个数据集,而且在Job的处理过程中还需要把大量的数据传输到网络。对主流用户而言,难以有很大的吸引力。
请记住,下一代的SQL-on-Hadoop工具并不仅仅只是商业智能,也不是仅仅只能读取存储在Hadoop上数据的数据库产品, EMC Greenplum, HP Vertica, IBM Netezza, ParAccel, Microsoft SQL Server以及Teradata/Aster Data全部都允许某些方式的Hadoop数据查询。而且这些是应用,框架以及可以让用户从内部进行Hadoop数据查询的引擎,有时候也会重构底层计算以及数据基础设施。这种方式的优点在于:可以利用已有存储形式的数据,从理论上讲,对数据的分析应用就不需要再访问两个独立的数据存储。
数据仓库和BI:The Structure: Data set
Apache Drill: Drill是由MapR主导、基于Hadoop之上的类似于谷歌的Demel(或者说BigQuery)交互式查询引擎。首次公布在8月份,不过该项目正处在开发阶段,也是Apache的孵化器计划,根据其网站所言:“(Drill)明确的目标就是扩展到10000台服务器,而且能够在几秒钟之内处理PB级的数据和数万亿条的记录。”
MapR的产品管理总监Tomer Shiran表示:“Drill与MapReduce相辅相成。在谷歌,数以千计的工程师每天都在使用Dremel和MapReduce,未来也将有着更多的人来使用Drill与MapReduce。 ”
Hadapt:Hadapt实际上在2011年的Structure: Data大会上发布,它也是第一批SQL-on-Hadoop的厂商之一,其独特之处在于,在市场上已经有了真正的产品,而且已经培育了自己的客户群。其独一无二的架构包括先进的SQL分析工具,为MapReduce以及相关任务打造的split-execution引擎,也包含HDFS和相关的存储。
Hadapt提供了一体化的分析环境,旨在对Hadoop里面的数据执行分析操作,还能对SQL环境中传统的结构化数据进行分析。而Hadapt的平台设计成了可以在私有云或公共云环境上运行,提供了从一个环境就能访问所有数据的优点,所以除了MapReduce流程和大数据分析工具外,现有的基于SQL的工具也可以使用。Hadapt可以在Hadoop层和关系数据库层之间自动划分查询执行任务,提供了Hadapt所谓的优化环境,这种环境可以充分利用Hadoop的可扩展性和关系数据库技术的快速度。
Platfora:从技术来讲,这并不是一个SQL产品,Platfora现在是“红的发紫”,而且意图打造大数据商业智能(BI)的新蓝图。大家都知道,如何能够把冗杂的数据(不管是邮件、文档、音频等)进行有效处理、视觉化,让它变成普通的用户都能看得懂的东西,“数据”才能真正变得有价值。但是Hadpoop只有一小部分开发者(相对而言)在使用,而Platfora却想把它变成一个任何人都可以理解、使用的工具。虽然也有其他的创业者在做类似的事情,但是Platfora在数据处理速度上有明显的优势,同时非常直观,并且他们在用HTML5的canvas来做解决方案,既可以保证操作简便又能兼容不同设备上的数据,公司在10月份进行的产品发布。
Qubole:Qubole是一个建设云平台进行数据分析和处理的创业公司。联合创始人兼CEO是Ashishi Thusoo,在创办Qubole之前,Ashishi负责Facebook数据基础设施团队。在他的领导下,团队创造了世界上最大的数据分析与处理平台。他也是Apache Hive项目的联合创始人,并作为该项目的Apache软件基金会的创始副总裁。Qubole声称具有自动扩展能力,并且对Hadoop代码做过优化,高速的列数据缓存可以让其服务比单独运行Hive时要快很多。Qubole运行在AWS上,相对而言,这比维护一个物理集群要容易得多。
数据仓库和BI:续篇
Citus Data: Citus Data的CitusDB并不仅仅只关注于Hadoop,而是想把其分布式的Postgres能力扩展到所有的数据类型中。其中的一项功能“foreign data wrappers”,它能够把多种数据类型(像CSV, log以及JSON files,而且这些数据类型在原生的Postgres上是并不匹配的)转化成数据库的原生类型,接下来在几秒钟之内就能使用其特有的分布式处理技术来完成查询。由于其Postgres的功能,CitusDB也能连接不同的数据源(比如Postgres-Hadoop),这样就不需要用户进行独立的查询,然后再手动地连接数据。
Cloudera Impala:Cloudera Impala可能是SQL-on-Hadoop上最重要的成果,这是一个大规模的并行处理引擎,成功避开了MapReduce进行交互式地查询部署在HDFS或者Hbase中的数据。不过,因为Cloudera并不构建应用程序,它依赖更高层次的BI和分析合作伙伴为用户提供接口。
在2012年纽约进行的大数据技术会议Strata Conference + Hadoop World上,Cloudera发布了实时查询开源项目Impala 1.0 beta版,称 比原来基于MapReduce的Hive SQL查询速度提升3~90倍,而且更加灵活易用。Impala不再使用缓慢的Hive+MapReduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或者HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。其架构如下图所示。
Impala的架构(来自ZDNet)
Karmasphere:就像Hive一样,Karmasphere也是依赖于MapReduce处理查询,这也就意味着其速度要慢于其他的新途径。与Hive不同的是,Karmasphere允许并行查询,而且其包含一个可视化的界面,可以用于编写查询以及过滤查询结果。
Karmasphere提供了直接访问Hadoop里面结构化和非结构化数据的优点,它还可以运用SQL及其他语言,用于即席查询和进一步的分析。使用SQL及其他语言,用户就能创建即席查询,然后处理结果。Karmasphere Studio为开发人员提供了一种图形化环境,可以在里面开发自定义算法,为应用程序和可重复的生产流程创建实用的数据集。
Lingual:Lingual是来自Concurrent的一个新的开源项目,其母公司从事Hadoop Cascading框架设计。Lingual运行在Cascading之上,(Cascading是一个架构在Hadoop上的API,用来创建复杂和容错数据处理工作流。它抽象了集群拓扑结构和配置来快速开发复杂分布式的应用,而不用考虑背后的MapReduce),并提供给开发者和分析师一个真正的ANSI SQL接口,在其之上可以运行分析或者是构建应用。Lingual兼容传统的BI工具,JDBC以及Cascading系的API。
Phoenix:Phoenix是一个新的,相对来说并不为人知的一个开源项目,出自Salesforce.com,旨在打造一个更快的SQL查询,面向的对象有HBase或者是部署在HDFS之上的NoSQL数据库。用户通过JDBC接口与其进行交互。
Shark:Shark虽然不是技术上的Hadoop,但是它们也有很深的渊源。Shark,从一定意义上说代表了“Hive on Spark”,使用Hive也就意味着它与Hadoop也存在着密切的关系。使用Shark运行并行处理Job要比MapReduce快100倍,Shark宣称对比传统的Hive而言,这是一个巨大的提升。
Stinger Initiative:Stinger Initiative是由Hortonworks主导的 一个科研成果,可以让Hive的速度提升高达100倍,而且引入了更多的功能。Stinger为Hive添加了更多的SQL分析能力,但是最关键的方面在于底层基础设施的提升:一个优化的执行引擎,一个列式文件格式,能够避免MapReduce的运行瓶颈。
Operational SQL
Drawn to Scale:Drawn to Scale也是一家初创公司,它在HBase之上构建了一个 SQL数据库,这里的关键词是“数据库”。其产品称之为Spire,它仿照了谷歌的F1设计。Spire拥有一个分布式索引,所有的查询只发送给相关数据的存储节点,所以其读取和写入的速度都很快,系统还能够处理大量的并发用户。
Splice Machine:Splice Machine(数据库初创公司)也尝试通过在原生的HBase分布式数据库上建立其Splice SQL Engine来取得一席之地。Splice Machine关注的是事务完整性,这也是它区别于可扩展的NoSQL数据库和分析类SQL-on-Hadoop产品的特色所在。它依赖于HBase的auto-sharding功能,这也是为了让扩展变得更加容易
相关推荐
Hadoop允许数据在廉价硬件上进行分布式计算,极大地提高了数据处理能力。 文件名称列表中的文档可能涵盖以下内容: 1. "5WD-02-Foundation-2003-09.pdf":这可能是关于SQL:2003基础的文档,涵盖了SQL的基本概念、...
标题中提到的“hadoop在windows上运行的工具”主要指的是在Windows环境下运行Hadoop所需的特定工具,这些工具确保了Hadoop能够在非Linux系统上正常工作。其中,“libwinutils.lib”是一个动态链接库文件,它包含了在...
- **分布式存储**:HDFS是Hadoop的核心组成部分之一,它是一种分布式文件系统,能够将大规模数据集分布在多个廉价的商品服务器上存储。这种分布式的存储方式极大地提高了数据的处理速度。 - **容错性**:HDFS具有...
Hive是一个建立在Hadoop之上的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能(HQL),可以将SQL语句转换为MapReduce任务进行执行。Hive适用于需要进行数据摘要、查询和分析的...
这个"hadopp Windows 运行环境"就是为在Windows操作系统上搭建和运行Hadoop环境提供所需的支持。 Hadoop的核心由两个主要组件构成:Hadoop分布式文件系统(HDFS)和MapReduce。HDFS是Hadoop的数据存储层,它将大...
7. **Hadoop生态组件**:Hadoop生态中还包括许多其他组件,如Hive(SQL-like查询工具)、Pig(数据分析工具)、Spark(快速大数据处理框架)、HBase(NoSQL数据库)、ZooKeeper(分布式协调服务)等。 8. **Hadoop...
标题 "eclipse 运行hadoop工具包" 涉及到的是在Eclipse集成开发环境中运行Hadoop项目的方法。Eclipse是一款广泛使用的Java IDE,而Hadoop是Apache开源项目,主要用于大数据处理和分析。通过特定的插件,Eclipse能够...
通过这个实验,我们可以学习如何运用Hadoop生态系统的组件进行大数据处理,理解Hive在数据仓库中的作用,以及如何利用SQL查询语句进行数据挖掘。这对于提升大数据分析能力,洞悉电影产业趋势具有重要意义。在实际...
这4个简历模板可能特别强调候选人的Hadoop、Spark、SQL、NoSQL数据库等技能,以及处理大规模数据的经验。求职者应确保在这些模板中突出他们在大数据项目中的角色,例如数据清洗、建模、可视化和性能优化等。 接下来...
总之,"winutils-master.zip" 是针对Windows用户的重要工具包,它解决了在Windows上运行Hadoop遇到的兼容性问题,使得开发者和数据分析师可以在不依赖Linux环境的情况下,充分利用Hadoop的功能进行大数据处理。
在大数据处理领域,Hadoop是一个不可或缺的关键工具,它以其分布式计算框架著称,为企业和组织提供了海量数据存储和处理的能力。本实践指南将深入探讨如何利用Hadoop来构建高效的数据仓库系统,以此来提升数据分析的...
这个文件包含了Hadoop在Windows上运行所需的特定函数和API,确保Hadoop的核心服务如HDFS(Hadoop Distributed File System)和MapReduce能够正常工作。确保正确地将这些DLL文件放置在系统路径或者Hadoop的bin目录下...
《Hadoop运行原理分析》是深入理解大数据处理框架Hadoop的核心读物,它详细解析了Hadoop如何在大规模数据集上高效运行。本文件主要涵盖了以下几个关键知识点: 1. **Hadoop概述**:Hadoop是Apache软件基金会开发的...
在Hadoop平台上,我们通常会使用Hive或Pig这样的数据仓库工具进行数据预处理和查询。Hive提供了一种SQL-like的语言,使得非程序员也能方便地操作大数据。Pig则采用脚本语言Pig Latin,适合复杂的转换操作。在这项...
为了在Windows上成功安装Hadoop,我们需要了解几个关键知识点,并准备一些必要的工具。以下是一份详细的步骤指南: 1. **Java开发工具(JDK)**:Hadoop依赖于Java运行环境,因此首先需要安装Java Development Kit ...
Hadoop作为一种强大的分布式计算框架,在大数据处理领域扮演着举足轻重的角色。然而,随着其功能的不断扩展和复杂性的增加,用户在使用过程中难免会遇到各种各样的问题。本文旨在通过对Hadoop运行痕迹的深入分析,...