全文共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学习与发展的干货
暂无评论内容