大数据框架Hadoop PK Spark,赢家是……

全文共2601字,预计学习时长5分钟算法

图片来源:unsplash.com/@gferla

当下,数字宇宙正以飞快的速度追赶着物理宇宙,每两年,全球数据量就会翻一番。据估计,到2020年,数字宇宙将达到44泽字节——其数字位的数量至关于宇宙中恒星的数量。编程

数据量随时间的推移而增长

为处理这些数据,市面上的分布式系统也愈来愈多。在众多系统中,Hadoop和Spark常常被视为直接竞争对手进行比较。安全

在决定哪一个框架更合适时,能够根据几个基本的参数来比较。服务器

性能微信

Spark的速度很是快并优于Hadoop框架,内存运行速度快100倍,磁盘运行速度快10倍。此外,使用Spark小10倍的机器对100 TB数据进行排序时,其速度是Hadoop的3倍。框架

Hadoop vs Spark

Spark速度快是由于在内存中处理数据。Spark的内存处理能够为营销活动、物联网传感器、机器学习和社交媒体网站提供数据实时分析。机器学习

然而,若是Spark与其它服务都在YARN上运行,Spark的性能就会降低,这会致使RAM内存不足。而Hadoop就能很好的解决这一问题,若是用户想要批量处理,那么Hadoop会比Spark高效得多。分布式

注意:Hadoop和Spark有不一样的处理方法。在Hadoop和Spark的性能对比中,到底是使用Hadoop仍是Spark,彻底取决于项目需求。函数

Facebook和Spark框架的过渡之旅工具

Facebook上的数据每分每秒都在增加,Facebook使用分析技术来处理和利用数据作决策,它利用了如下几个平台来实现这一目的:

1. 用于执行Facebook部分批量分析的Hive平台

2. 用于Mapreduce自定义实施的Corona平台

3. 基于ANSI-SQL查询的Presto数据查询引擎

从计算角度来看,上方所讨论的Hive平台属于“资源密集型”,维护这一平台颇具挑战。所以,Facebook决定转向Apache Spark来管理数据。当前,Facebook经过与Spark的整合为实体排名系统部署了一个更快速的可管理通道。

使用Spark框架的Facebook

安全性

Spark的安全性仍在不断发展,当前其仅支持经过共享密码(密码身份验证)核实身份。Spache Spark的官网也声明“Spark仍存在不一样类型的安全问题,并不能保护全部的东西”。

另外一方面,Hadoop则具备如下安全特性:Hadoop身份验证、受权、审计和加密。全部这些都与Knox Gateway和Sentry等的Hadoop安全项目相结合。

关键点:在Hadoop和Spark的安全对比中,Spark的安全性略逊于Hadoop。然而,将Hadoop与Spark结合,Spark就能够具有Hadoop的安全特性。

成本

首先,Hadoop和Spark都是开源框架,所以二者都是免费的,都使用普通服务器,都在云端运行,且彷佛有一些相似的硬件需求:

Hadoop vs.Spark specs

如何从成本角度进行评估呢?

请注意,Spark利用大量RAM来运行内存中的东西。RAM的价格高于硬盘,因此这可能会影响成本。

另外一方面,Hadoop绑定了硬盘,这就节省了购买RAM的成本。可是,Hadoop须要更多的系统来分配磁盘I/O。

所以,在比较Hadoop和Spark框架的成本参数时,机构必需要将需求归入考虑。

若是需求倾向于处理大量大型的历史数据,选择Hadoop就是正确的,由于硬盘空间的价格要比内存空间的价格低得多。

另外一方面,若是要处理实时数据,Spark的性价比更高,由于Spark能够利用更少的硬件以更快的速率执行相同的任务。

注意:在Hadoop和Spark的成本对比中,毋庸置疑,Hadoop的成本更低。但若是机构得处理少许实时数据时,Spark则更为划算。

易操做性

Spark框架的一大USPs就是其易操做性,Spark为Scala Java、Python、Spark SQL(又称之为Shark)提供了用户友好温馨型的API。

Spark的简单构建模块使得编写用户定义函数变得更为轻易。此外,因为Spark支持批量处理和机器学习,所以也易于简化数据处理的基础设施。Spark还包括一个用于运行即时反馈命令的交互模式。

Hadoop是用Java编写的。在编写无交互模式的程序时,Hadoop的难用是众所周知的,因为其给程序的编写带来了很大的困难。尽管Pig(一个附加工具)使得编程更为容易,但却须要花费时间来学习语法。

关键点:在Hadoop和Spark的易操做性对比中,二者都有自身的用户友好方式。但若是必须两者择其一,Spark更易于编程又兼具交互模式。

Apache Hadoop和Spark有可能实现协同合做吗?

图片来源:unsplash.com/@starks73

咱们很是期盼这样一种可能性,如今来详细了解如何实现协同合做吧。

Apache Hadoop生态系统包括HDFS、Apache Query和HIVE,Apache是如何利用它们的呢?

Apache Spark和HDFS的合并

Apache Spark的目的是处理数据。但为了处理数据,引擎须要从存储中输入数据,Spark利用HDFS来实现这一目的(这一选择不是惟一的,可是最流行的,由于Apache是其背后的大脑)。

Apache HIVE和Apache Spark的混合

Apache HIVE和Apache Spark是高度兼容的,二者相结合能够解决不少的业务问题。

例如,一个公司正在分析消费者行为,须要从诸如社交媒体、评论、点击流数据、客户移动应用程序等各类来源收集数据。

企业能够利用HDFS存储数据,Apache HIVE做为HDFS和Spark的桥梁。

Uber及其合并法

使用Hadoop和Spark的Uber

Uber结合Spark和Hadoop来处理消费者数据,使用实时交通情况提供处于特定地点和时间的司机。为实现这一目标,Uber利用HDFS将原始数据上传至HIVE,并利用Spark处理数十亿个事件。

在Hadoop和Spark的对比中,赢家是......

尽管Spark速度快且易操做,但Hadoop是安全性高、存储量大、低成本的批量处理。究竟选择哪个彻底取决于项目需求,将二者结合起来则所向披靡。

将Spark和Hadoop的部分属性结合起来,造成一个全新的框架:Spoop。算法的公平性也能够量化?试试这三个指标吧

留言 点赞 关注

咱们一块儿分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”


(添加小编微信:dxsxbb,加入读者圈,一块儿讨论最新鲜的人工智能科技哦~)

相关文章
相关标签/搜索