更新时间:2021-10-07 09:22:47
大家好,我是本栏目的编辑郝帅,现在就给大家讲解一下上面的问题。长期以来,Apache Hadoop一直是大数据应用的基础,被认为是所有大数据相关产品的基础数据平台。然而,由于更快的性能和更快的结果,内存数据库和计算变得越来越流行。Apache Spark是一个新的框架,它使用内存功能来提供快速处理(几乎比Hadoop快100倍)。因此,Spark产品越来越多地应用于大数据领域,主要是为了加快处理速度。
什么是Apache Spark?
Apache Spark是一个开源框架,用于以高速简单的方式处理大量数据(大数据)。它适用于基于大数据的分析应用。Spark可以单独或在云中与Hadoop环境一起使用。它是在加州大学开发的,后来提供给了阿帕奇软件基金会。所以属于开源社区,性价比非常高,进一步让业余开发者轻松工作。
Spark的主要目的是为开发人员提供一个围绕中心数据结构的应用框架。Spark也非常强大,拥有在短时间内快速处理大量数据的先天能力,从而提供出色的性能。这使得它比最近的竞争对手Hadoop快得多。
为什么Spark对Hadoop如此重要?
Apache Spark一直以其优于Hadoop的诸多优势而闻名,这或许可以解释为什么它仍然如此重要。其中一个主要原因是考虑到它的处理速度。事实上,如上所述,对于相同数量的数据,Spark提供的处理速度比Hadoop的MapReduce快100倍左右。与Hadoop相比,它使用的资源也更少,这使得它具有成本效益。
Spark优势的另一个关键方面是它与资源管理器的兼容性。众所周知,Apache Spark与Hadoop一起运行,就像MapReduce一样,但后者目前只与Hadoop兼容。然而,对于Apache Spark,它可以与其他资源管理器一起使用,如Spark或Mesos。数据科学家通常认为这是Spark真正优于Hadoop的最大领域之一。
说到易用性,Spark恰好又比Hadoop好很多。除了Spark SQL等功能外,Spark还支持多种语言的API,如Scala、Java、Python等。编写用户定义的函数相对简单。它还碰巧具有运行命令的交互模式。另一方面,Hadoop是用Java编写的,赢得了难以编程的美誉,尽管它确实有工具来帮助这个过程。(要了解更多关于Spark的信息,请查看Apache Spark如何帮助您快速开发应用程序。)
Spark有哪些独特之处?
Apache Spark有一些独特的功能,可以让它在数据处理业务上区别于很多竞争对手。下文简要概述了其中的一些。
存储技术
Apache Spark的一个独特之处是其独特的“内存”技术,这使其成为一个非常好的数据处理系统。在这项技术中,Spark将所有数据加载到系统的内部内存中,然后稍后将其卸载到磁盘中。通过这种方式,用户可以将一部分处理后的数据保存在内存中,其余的保留在磁盘上。
Spark还具有通过其机器学习算法将必要信息加载到其核心的先天能力。它使它非常快。
火花的核心
Spark的核心管理几个重要的功能,例如设置任务和交互以及生成输入/输出操作。它可以说是RDD或弹性分布式数据集。基本上,这恰好是分布在通过网络连接的多台机器上的混合数据。这种数据转换是通过四步方法创建的,包括映射数据、排序数据、减少数据以及最后添加数据。
这一步之后是RDD的发布,这是在API的支持下完成的。该应用编程接口是三种语言的组合:Scala、Java和Python。
火花的SQL
Apache Spark的SQL有一个相对较新的数据管理解决方案,叫做SchemaRDD。这允许数据以多种级别排列,也可以用特定的语言查询数据。
Graphx服务
Apache Spark具有处理图形甚至图形信息的能力,因此可以轻松进行高精度分析。
流动
这是Spark的主要部分,允许它在内核的帮助下流式传输大量数据。它是通过将大数据分成更小的数据包,然后转换它们来实现的,从而加快了RDD的创建。
机器学习库
Apache Spark有MLib,这是一个结构化机器学习的框架。它也比Hadoop快。MLib还可以解决几个问题,例如统计读取、数据采样和先决条件测试等等。
为什么Spark不能取代Hadoop?
虽然Spark比Hadoop有几个优势,但Spark不能真正取代Hadoop仍有几个原因。
首先,与Spark相比,Hadoop只提供了更多的工具。它在业内也有一些公认的做法。虽然阿帕奇火花在衣领里,
域仍然相对年轻,并且需要一些时间来使自己与Hadoop相提并论。Hadoop的MapReduce在运行全面运营时也设定了一定的行业标准。另一方面,仍然认为Spark并不完全准备好以完全可靠的方式运行。通常,使用Spark的组织需要对其进行微调,以便为其满足要求做好准备。
Hadoop的MapReduce已经存在了比Spark更长的时间,也更容易配置。虽然这不是Spark的情况,考虑到它提供了一个尚未真正测试过粗糙补丁的全新平台。
公司对Spark和Hadoop的看法
许多公司已经开始利用Spark来满足他们的数据处理需求,但故事并没有就此结束。它肯定有几个强大的方面,使其成为一个惊人的数据处理平台。然而,它还有其公平的缺点需要修复。
这是一个行业概念,Apache Spark将继续存在,甚至可能是数据处理需求的未来。但是,它仍然需要经过大量的开发工作和抛光才能真正发挥其潜力。
实际实施
Apache Spark已经并且仍然被许多适合其数据处理要求的公司所采用。其中一个最成功的实施是由Shopify进行的,该公司希望选择符合条件的商店进行商业合作。但是,当数据仓库希望了解其客户销售的产品时,它的数据仓库仍处于暂停状态。在Spark的帮助下,该公司能够处理数百万条数据记录,然后在几分钟内处理6700万条记录。它还确定了哪些商店符合条件。
利用Spark,Pinterest能够识别发展趋势,然后使用它来了解用户的行为。这进一步提高了Pinterest社区的价值。世界上最大的旅游信息网站之一TripAdvisor也在使用Spark来加快对游客的推荐。
人们不能怀疑Apache Spark的实力,即使是目前,以及它带来的独特功能。它的处理能力和速度以及它的兼容性为未来的几件事奠定了基调。但是,如果要真正实现其全部潜力,它还需要改进几个方面。虽然Hadoop目前仍然是规则,但Apache Spark确实面临着光明的未来,许多人认为它是未来的数据处理平台。