大数据平台的软件有哪些.docx
- 文档编号:11487976
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:7
- 大小:23.72KB
大数据平台的软件有哪些.docx
《大数据平台的软件有哪些.docx》由会员分享,可在线阅读,更多相关《大数据平台的软件有哪些.docx(7页珍藏版)》请在冰点文库上搜索。
大数据平台的软件有哪些
大数据平台的软件有哪些?
查询引擎一、Phoenix简介:
这是一个Java中间层,可以让开发者在ApacheHBase上执行SQL查询。
Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。
Phoenix查询引擎会将SQL查询转换为一个或多个HBasescan,并编排执行以生成标准的JDBC结果集。
直接使用HBaseAPI、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。
Phoenix最值得关注的一些特性有:
?
嵌入式的JDBC驱动,实现了大部分的java.sql接口,包括元数据API?
可以通过多部行键或是键/值单元对列进行建模?
完善的查询支持,可以使用多个谓词以及优化的扫描键?
DDL支持:
通过CREATETABLE、DROPTABLE及ALTERTABLE来添加/删除列?
版本化的模式仓库:
当写入数据时,快照查询会使用恰当的模式?
DML支持:
用于逐行插入的UPSERTVALUES、用于相同或不同表之间大量数据传输的UPSERT?
SELECT、用于删除行的DELETE?
通过客户端的批处理实现的有限的事务支持?
单表——还没有连接,同时二级索引也在开发当中?
紧跟ANSISQL标准二、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的读写作业来优化Hivejob。
这将优化Hadoop内部的执行链,彻底加速Hive负载处理。
三、Presto简介:
Facebook开源的数据查询引擎Presto,可对250PB以上的数据进行快速地交互式分析。
该项目始于2012年秋季开始开发,目前该项目已经在超过1000名Facebook雇员中使用,运行超过30000个查询,每日数据在1PB级别。
Facebook称Presto的性能比诸如Hive和Map*Reduce要好上10倍有多。
Presto当前支持ANSISQL的大多数特效,包括联合查询、左右联接、子查询以及一些聚合和计算函数;支持近似截然不同的计数(DISTINCTCOUNT)等。
四、Shark简介:
Shark即HiveonSpark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。
Shark的特点就是快,完全兼容Hive,且可以在shell模式下使用rdd2sql()这样的API,把HQL得到的结果集,继续在scala环境下运算,支持自己编写简单的机器学习或简单分析处理函数,对HQL结果进一步分析计算。
?
Shark速度快的原因除了Spark平台提供的基于内存迭代计算外,在设计上还存在对Spark上进行了一定的改造,主要有?
partialDAGexecution:
对join优化,调节并行粒度,因为Spark本身的宽依赖和窄依赖会影响并行计算和速度基于列的压缩和存储:
把HQL表数据按列存,每列是一个array,存在JVM上,避免了JVMGC低效,而压缩和解压相关的技术是Yahoo!
提供的。
结来说,Shark是一个插件式的东西,在我现有的Spark和Hive及hadoop-client之间,在这两套都可用的情况下,Shark只要获取Hive的配置(还有metastore和exec等关键包),Spark的路径,Shark就能利用Hive和Spark,把HQL解析成RDD的转换,把数据取到Spark上运算和分析。
在SQLonHadoop这块,Shark有别于Impala,Stringer,而这些系统各有自己的设计思路,相对于对MR进行优化和改进的思路,Shark的思路更加简单明了些。
五、Pig简介:
Pig是一种编程语言,它简化了Hadoop常见的工作任务。
Pig可加载数据、表达转换数据以及存储最终结果。
Pig内置的操作使得半结构化数据变得有意义(如日志文件)。
同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。
Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本,类似我们通常熟悉的SQL语句,在Pig中称之为PigLatin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(groupby)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-definedfunctions)。
六、ClouderaImpala简介:
ClouderaImpala可以直接为存储在HDFS或HBase中的Hadoop数据提供快速,交互式的SQL查询。
除了使用相同的存储平台外,Impala和ApacheHive一样也使用了相同的元数据,SQL语法(HiveSQL),ODBC驱动和用户接口(HueBeeswax),这就很方便的为用户提供了一个相似并且统一的平台来进行批量或实时查询。
ClouderaImpala是用来进行大数据查询的补充工具。
Impala并没有取代像Hive这样基于MapReduce的分布式处理框架。
Hive和其它基于MapReduce的计算框架非常适合长时间运行的批处理作业,例如那些涉及到批量Extract、Transform、Load,即需要进行ETL作业。
Impala提供了:
?
数据科学家或数据分析师已经熟知的SQL接口?
能够在ApacheHadoop的大数据中进行交互式数据查询?
SinglesystemforbigdataprocessingandanalyticssocustomerscanavoidcostlymodelingandETLjustforanalytics七、ApacheDrill简介:
ApacheDrill是是一个能够对大数据进行交互分析、开源的分布式系统,且基于GoogleDremel实现,它能够运行在上千个节点的服务器集群上,且能在几秒内处理PB级或者万亿条的数据记录。
Drill能够帮助企业用户快速、高效地进行Hadoop数据查询和企业级大数据分析。
Drill于2012年8月份由Apache推出。
从Drill官方对其架构的介绍中得知,其具有适于实时的分析和快速的应用开发、适于半结构化/嵌套数据的分析、兼容现有的SQL环境和ApacheHive等特征。
另外,Drill的核心模块是Drillbit服务,该服务模块包括远程访问子模块、SQL解析器、查询优化器、任务计划执行引擎、存储插件接口(DFS、HBase、Hive等的接口)、分布式缓存模块等几部分,如下图所示:
八、ApacheTajo简介:
ApacheTajo项目的目的是在HDFS之上构建一个先进的数据仓库系统。
Tajo将自己标榜为一个“大数据仓库”,但是它好像和之前介绍的那些低延迟查询引擎类似。
虽然它支持外部表和Hive数据集(通过HCatalog),但是它的重点是数据管理,提供低延迟的数据访问,以及为更传统的ETL提供工具。
它也需要在数据节点上部署Tajo特定的工作进程。
Tajo的功能包括:
?
ANSISQL兼容?
JDBC驱动?
集成Hivemetastore能够访问Hive数据集?
一个命令行客户端?
一个自定义函数API九、Hive简介:
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
流式计算一、FacebookPuma简介:
实时数据流分析二、TwitterRainbird
简介:
Rainbird一款基于Zookeeper,Cassandra,Scribe,Thrift的分布式实时统计系统,这些基础组件的基本功能如下:
?
Zookeeper,Hadoop子项目中的一款分布式协调系统,用于控制分布式系统中各个组件中的一致性。
?
Cassandra,NoSQL中一款非常出色的产品,集合了Dynamo和Bigtable特性的分布式存储系统,用于存储需要进行统计的数据,统计数据,并且提供客户端进行统计数据的查询。
(需要使用分布式Counter补丁CASSANDRA-1072)?
Scribe,Facebook开源的一款分布式日志收集系统,用于在系统中将各个需要统计的数据源收集到Cassandra中。
?
Thrift,Facebook开源的一款跨语言C/S网络通信框架,开发人员基于这个框架可以轻易地开发C/S应用。
用处Rainbird可以用于实时数据的统计:
?
统计网站中每一个页面,域名的点击次数?
内部系统的运行监控(统计被监控服务器的运行状态)?
记录最大值和最小值三、YahooS4简介:
S4(SimpleScalableStreamingSystem)最初是Yahoo!
为提高搜索广告有效点击率的问题而开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率。
目前该项目刚启动不久,所以也可以理解为是他们提出的一个分布式流计算(DistributedStreamComputing)的模型。
S4的设计目标是:
·提供一种简单的编程接口来处理数据流·设计一个可以在普通硬件之上可扩展的高可用集群。
·通过在每个处理节点使用本地内存,避免磁盘I/O瓶颈达到最小化延迟·使用一个去中心的,对等架构;所有节点提供相同的功能和职责。
没有担负特殊责任的中心节点。
这大大简化了部署和维护。
·使用可插拔的架构,使设计尽可能的即通用又可定制化。
·友好的设计理念,易于编程,具有灵活的弹性YahooS4官方网站>>>四、TwitterStorm简介:
Storm是Twitter开源的一个类似于Hadoop的实时数据处理框架,它原来是由BackType开发,后BackType被Twitter收购,将Storm作为Twitter的实时数据分析系统。
实时数据处理的应用场景很广泛,例如商品推荐,广告投放,它能根据当前情景上下文(用户偏好,地理位置,已发生的查询和点击等)来估计用户点击的可能性并实时做出调整。
storm的三大作用领域:
1.信息流处理(StreamProcessing)Storm可以用来实时处理新数据和更新数据库,兼具容错性和可扩展性,它可以用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。
2.连续计算(ContinuousComputation)Storm可以进行连续查询并把结果即时反馈给客户,比如将Twitter上的热门话题发送到客户端。
3.分布式远程过程调用(DistributedRPC)除此之外,Storm也被广泛用于以下方面:
精确的广告推送实时日志的处理TwitterStorm官方网站>>>迭代计算一、ApacheHama简介:
ApacheHama是一个纯BSP(BulkSynchronousParallel)计算框架,模仿了Google的Pregel。
用来处理大规模的科学计算,特别是矩阵和图计算。
?
建立在Hadoop上的分布式并行计算模型。
?
基于Map/Reduce和BulkSynchronous的实现框架。
?
运行环境需要关联Zookeeper、HBase、HDFS组件。
Hama中有2个主要的模型:
–矩阵计算(Matrixpackage)–面向图计算(Graphpackage)ApacheHama官方网站>>>二、ApacheGiraph代码托管地址:
GitHub简介:
ApacheGiraph是一个可伸缩的分布式迭代图处理系统,灵感来自BSP(bulksynchronousparallel)和Google的Pregel,与它们区别于则是是开源、基于Hadoop的架构等。
Giraph处理平台适用于运行大规模的逻辑计算,比如页面排行、共享链接、基于个性化排行等。
Giraph专注于社交图计算,被Facebook作为其OpenGraph工具的核心,几分钟内处理数万亿次用户及其行为之间的连接。
三、HaLoop简介:
迭代的MapReduce,HaLoop——适用于迭代计算的Hadoop。
Hadoop与HaLoop的不同与Hadoop比较的四点改变:
1.提供了一套新的编程接口,更加适用于迭代计算;HaLoop给迭代计算一个抽象的递归公式:
2.HaLoop的master进行job内的循环控制,直到迭代计算结束;3.TaskScheduler也进行了修改,使得任务能够尽量满足datalocality4.slavenodes对数据进行cache并index索引,索引也以文件的形式保存在本地磁盘。
HaLoop官网>>>四、Twister简介:
Twister,迭代式MapReduce框架,Twister是由一个印度人开发的,其架构如下:
在Twister中,大文件不会自动被切割成一个一个block,因而用户需提前把文件分成一个一个小文件,以供每个task处理。
在map阶段,经过map()处理完的结果被放在分布式内存中,然后通过一个brokernetwork(NaradaBroking系统)将数据push给各个reducetask(Twister假设内存足够大,中间数据可以全部放在内存中);在reduce阶段,所有reducetask产生的结果通过一个combine操作进行归并,此时,用户可以进行条件判定,确定迭代是否结束。
combine后的数据直接被送给maptask,开始新一轮的迭代。
为了提高容错性,Twister每隔一段时间会将maptask和reducetask产生的结果写到磁盘上,这样,一旦某个task失败,它可以从最近的备份中获取输入,重新计算。
为了避免每次迭代重新创建task,Twister维护了一个taskpool,每次需要task时直接从pool中取。
在Twister中,所有消息和数据都是通过brokernetwork传递的,该brokernetwork是一个独立的模块,目前支持NaradaBroking和ActiveMQ。
离线计算一、HadoopMapReduce简介:
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
概念”Map(映射)”和”Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
HadoopMapReduce官方网站>>>二、BerkeleySpark简介:
Spark是UCBerkeleyAMPlab所开源的类HadoopMapReduce的通用的并行,Spark,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的mapreduce的算法。
三、DataTorrent简介:
DataTorrent基于Hadoop2.x构建,是一个实时的、有容错能力的数据流式处理和分析平台,它使用本地Hadoop应用程序,而这些应用程序可以与执行其它任务,如批处理,的应用程序共存。
该平台的架构如下图所示:
相关文章:
DataTorrent1.0每秒处理超过10亿个实时事件DataTorrent将数据分析速度从“实时”提升至“现在时”键值存储一、LevelDB贡献者:
Google简介:
Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。
在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。
特别是LMS算法。
LevelDB是单进程的服务,性能非常之高,在一台4核Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。
此处随机读是完全命中内存的速度,如果是不命中速度大大下降。
LevelDB官方网站>>>二、RocksDB贡献者:
facebook简介:
RocksDB虽然在代码层面上是在LevelDB原有的代码上进行开发的,但却借鉴了ApacheHBase的一些好的idea。
在云计算横行的年代,开口不离Hadoop,RocksDB也开始支持HDFS,允许从HDFS读取数据。
RocksDB支持一次获取多个K-V,还支持Key范围查找。
LevelDB只能获取单个Key。
RocksDB除了简单的Put、Delete操作,还提供了一个Merge操作,说是为了对多个Put操作进行合并。
RocksDB提供一些方便的工具,这些工具包含解析sst文件中的K-V记录、解析MANIFEST文件的内容等。
RocksDB支持多线程合并,而LevelDB是单线程合并的。
RocksDB官方网站>>>三、HyperDex贡献者:
FacebookHyperDex是一个分布式、可搜索的键值存储系统,特性如下:
分布式KV存储,系统性能能够随节点数目线性扩展吞吐和延时都能秒杀现在风头正劲的MonogDB,吞吐甚至强于Redis使用了hyperspacehashing技术,使得对存储的K-V的任意属性进行查询成为可能官网:
//hyperdex.org/四、TokyoCabinet日本人MikioHirabayashi(平林干雄)开发的一款DBM数据库。
TokyoCabinet是一个DBM的实现。
这里的数据库由一系列key-value对的记录构成。
key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。
这里没有数据类型和数据表的概念。
当做为Hash表数据库使用时,每个key必须是不同的,因此无法存储两个key相同的值。
提供了以下访问方法:
提供key,value参数来存储,按key删除记录,按key来读取记录,另外,遍历key也被支持,虽然顺序是任意的不能被保证。
这些方法跟Unix标准的DBM,例如GDBM,NDBM等等是相同的,但是比它们的性能要好得多(因此可以替代它们)。
下一代KV存储系统,支持strings、integers、floats、lists、maps和sets等丰富的数据类型。
TokyoCabinet官方网站>>>五、VoldemortVoldemort是一个分布式键值存储系统,是Amazon’————“Bigtable简介:
HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:
一个结构化数据的分布式存储系统”—“无限复制”/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 平台 软件 哪些