当前位置:文档之家› 大数据平台的软件有哪些

大数据平台的软件有哪些

大数据平台的软件有哪些?查询引擎一、Phoenix简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询。

Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。

Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的JDBC 结果集。

直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。

Phoenix最值得关注的一些特性有:?嵌入式的JDBC驱动,实现了大部分的java.sql接口,包括元数据API?可以通过多部行键或是键/值单元对列进行建模?完善的查询支持,可以使用多个谓词以及优化的扫描键?DDL支持:通过CREATE TABLE、DROP TABLE及ALTER TABLE来添加/删除列?版本化的模式仓库:当写入数据时,快照查询会使用恰当的模式?DML支持:用于逐行插入的UPSERT V ALUES、用于相同或不同表之间大量数据传输的UPSERT ?SELECT、用于删除行的DELETE?通过客户端的批处理实现的有限的事务支持?单表——还没有连接,同时二级索引也在开发当中?紧跟ANSI SQL标准二、Stinger 简介:原叫Tez,下一代Hive,Hortonworks主导开发,运行在YARN上的DAG计算框架。

某些测试下,Stinger能提升10倍左右的性能,同时会让Hive支持更多的SQL,其主要优点包括:?让用户在Hadoop获得更多的查询匹配。

其中包括类似OVER的字句分析功能,支持WHERE查询,让Hive 的样式系统更符合SQL模型。

?优化了Hive请求执行计划,优化后请求时间减少90%。

改动了Hive执行引擎,增加单Hive任务的被秒处理记录数。

?在Hive社区中引入了新的列式文件格式(如ORC文件),提供一种更现代、高效和高性能的方式来储存Hive数据。

?引入了新的运行时框架——Tez,旨在消除Hive的延时和吞吐量限制。

Tez通过消除不必要的task、障碍同步和对HDFS的读写作业来优化Hive job。

这将优化Hadoop内部的执行链,彻底加速Hive负载处理。

三、Presto简介:Facebook开源的数据查询引擎Presto ,可对250PB以上的数据进行快速地交互式分析。

该项目始于2012 年秋季开始开发,目前该项目已经在超过1000 名Facebook 雇员中使用,运行超过30000 个查询,每日数据在1PB 级别。

Facebook 称Presto 的性能比诸如Hive 和Map*Reduce 要好上10 倍有多。

Presto 当前支持ANSI SQL 的大多数特效,包括联合查询、左右联接、子查询以及一些聚合和计算函数;支持近似截然不同的计数(DISTINCT COUNT)等。

四、Shark简介:Shark即Hive on Spark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD 操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。

Shark的特点就是快,完全兼容Hive,且可以在shell 模式下使用rdd2sql()这样的API,把HQL得到的结果集,继续在scala环境下运算,支持自己编写简单的机器学习或简单分析处理函数,对HQL结果进一步分析计算。

?Shark速度快的原因除了Spark平台提供的基于内存迭代计算外,在设计上还存在对Spark上进行了一定的改造,主要有?partial DAG execution:对join优化,调节并行粒度,因为Spark本身的宽依赖和窄依赖会影响并行计算和速度基于列的压缩和存储:把HQL表数据按列存,每列是一个array,存在JVM 上,避免了JVM GC低效,而压缩和解压相关的技术是Yahoo!提供的。

结来说,Shark是一个插件式的东西,在我现有的Spark和Hive及hadoop-client之间,在这两套都可用的情况下,Shark只要获取Hive的配置(还有metastore和exec等关键包),Spark的路径,Shark就能利用Hive和Spark,把HQL解析成RDD的转换,把数据取到Spark上运算和分析。

在SQL on Hadoop这块,Shark有别于Impala,Stringer,而这些系统各有自己的设计思路,相对于对MR进行优化和改进的思路,Shark的思路更加简单明了些。

五、Pig简介:Pig 是一种编程语言,它简化了Hadoop常见的工作任务。

Pig可加载数据、表达转换数据以及存储最终结果。

Pig内置的操作使得半结构化数据变得有意义(如日志文件)。

同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。

Pig最大的作用就是对mapreduce算法(框架)实现了一套shell 脚本,类似我们通常熟悉的SQL语句,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-defined functions)。

六、Cloudera Impala简介:Cloudera Impala 可以直接为存储在HDFS或HBase中的Hadoop数据提供快速,交互式的SQL查询。

除了使用相同的存储平台外,Impala和Apache Hive一样也使用了相同的元数据,SQL语法(Hive SQL),ODBC驱动和用户接口(Hue Beeswax),这就很方便的为用户提供了一个相似并且统一的平台来进行批量或实时查询。

Cloudera Impala 是用来进行大数据查询的补充工具。

Impala 并没有取代像Hive这样基于MapReduce的分布式处理框架。

Hive和其它基于MapReduce 的计算框架非常适合长时间运行的批处理作业,例如那些涉及到批量Extract、Transform、Load ,即需要进行ETL作业。

Impala 提供了:?数据科学家或数据分析师已经熟知的SQL接口?能够在Apache Hadoop 的大数据中进行交互式数据查询? Single system for big data processing and analytics so customers can avoid costly modeling and ETL just for analytics 七、Apache Drill简介:Apache Drill是是一个能够对大数据进行交互分析、开源的分布式系统,且基于Google Dremel实现,它能够运行在上千个节点的服务器集群上,且能在几秒内处理PB级或者万亿条的数据记录。

Drill能够帮助企业用户快速、高效地进行Hadoop数据查询和企业级大数据分析。

Drill于2012年8月份由Apache推出。

从Drill官方对其架构的介绍中得知,其具有适于实时的分析和快速的应用开发、适于半结构化/嵌套数据的分析、兼容现有的SQL环境和Apache Hive等特征。

另外,Drill的核心模块是Drillbit 服务,该服务模块包括远程访问子模块、SQL解析器、查询优化器、任务计划执行引擎、存储插件接口(DFS、HBase、Hive等的接口)、分布式缓存模块等几部分,如下图所示:八、Apache Tajo简介:Apache Tajo项目的目的是在HDFS 之上构建一个先进的数据仓库系统。

Tajo将自己标榜为一个“大数据仓库”,但是它好像和之前介绍的那些低延迟查询引擎类似。

虽然它支持外部表和Hive数据集(通过HCatalog),但是它的重点是数据管理,提供低延迟的数据访问,以及为更传统的ETL提供工具。

它也需要在数据节点上部署Tajo特定的工作进程。

Tajo的功能包括:?ANSI SQL兼容?JDBC 驱动?集成Hive metastore能够访问Hive数据集?一个命令行客户端?一个自定义函数API九、Hive简介:hive 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

流式计算一、Facebook Puma简介:实时数据流分析二、Twitter Rainbird简介:Rainbird一款基于Zookeeper, Cassandra, Scribe, Thrift 的分布式实时统计系统,这些基础组件的基本功能如下:? Zookeeper,Hadoop子项目中的一款分布式协调系统,用于控制分布式系统中各个组件中的一致性。

?Cassandra,NoSQL 中一款非常出色的产品,集合了Dynamo和Bigtable特性的分布式存储系统,用于存储需要进行统计的数据,统计数据,并且提供客户端进行统计数据的查询。

(需要使用分布式Counter补丁CASSANDRA-1072)? Scribe,Facebook开源的一款分布式日志收集系统,用于在系统中将各个需要统计的数据源收集到Cassandra中。

? Thrift,Facebook开源的一款跨语言C/S网络通信框架,开发人员基于这个框架可以轻易地开发C/S应用。

用处Rainbird可以用于实时数据的统计:?统计网站中每一个页面,域名的点击次数?内部系统的运行监控(统计被监控服务器的运行状态)?记录最大值和最小值三、Yahoo S4简介:S4(Simple Scalable Streaming System)最初是Yahoo!为提高搜索广告有效点击率的问题而开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率。

目前该项目刚启动不久,所以也可以理解为是他们提出的一个分布式流计算(Distributed Stream Computing)的模型。

S4的设计目标是:·提供一种简单的编程接口来处理数据流·设计一个可以在普通硬件之上可扩展的高可用集群。

·通过在每个处理节点使用本地内存,避免磁盘I/O瓶颈达到最小化延迟·使用一个去中心的,对等架构;所有节点提供相同的功能和职责。

没有担负特殊责任的中心节点。

这大大简化了部署和维护。

相关主题