Spark 101:它是什么,它做什么以及为什么起作用

最近,许多大数据的讨论都使用了新名称。 有人将流行的新来者Apache Spark ™视为Hadoop的更易用,功能更强大的替代品, Hadoop是大数据的首选原始技术。 其他人认为Spark是Hadoop和其他技术的有力补充,它具有自己的优点,怪癖和局限性。

与其他大数据工具一样,Spark功能强大,功能强大且设备齐全,可应对各种数据挑战。 对于每个数据处理任务,它也不一定是最佳选择。 您可以在电子书“ Spark入门:从开始到生产”中了解有关Spark的更多信息 在此博客文章中,我将详细介绍Spark是什么,谁使用Spark以及它与其他数据处理引擎的区别。

什么是星火?

Spark是通用数据处理引擎,适用于多种情况。 应用程序开发人员和数据科学家将Spark集成到他们的应用程序中,以快速地大规模查询,分析和转换数据。 与Spark最频繁相关的任务包括跨大型数据集的交互式查询,来自传感器或金融系统的流数据处理以及机器学习任务。

Spark于2009年开始运作,最初是加州大学伯克利分校AMPLab内部的一个项目。 更具体地说,它是出于证明Mesos概念的需要而诞生的,Mesos概念也是在AMPLab中创建的。 在Mesos白皮书《 Mesos:数据中心中细粒度资源共享的平台》中首次讨论了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。

Spark在2013年成为Apache Software Foundation的孵化项目,并在2014年初被提升为Foundation的顶级项目之一。 Spark是基金会管理的最活跃的项目之一,围绕该项目成长的社区包括多产的个人贡献者和资金雄厚的企业支持者,例如Databricks,IBM和中国的华为。

从一开始,Spark就被优化为在内存中运行。 它比Hadoop的MapReduce等替代方法更快地处理数据,后者倾向于在处理的每个阶段之间向计算机硬盘写入数据或从计算机硬盘写入数据。 Spark的支持者声称,Spark在内存中的运行速度可以比Hadoop MapReduce快100倍,并且在以类似于Hadoop MapReduce本身的方式处理基于磁盘的数据时也可以快10倍。 这种比较并不完全公平,这不仅是因为原始速度对于Spark的典型用例而言比对批处理更为重要,在这种情况下,类似于MapReduce的解决方案仍然很出色。

Spark会做什么?

Spark能够一次处理数PB的数据,分布在成千上万个协作的物理或虚拟服务器的群集中。 它具有广泛的开发人员库和API,并支持Java,Python,R和Scala等语言。 它的灵活性使其非常适合各种用例 。 Spark通常与Hadoop的数据存储模块HDFS一起使用,但它可以与HBase ,Cassandra, MapR-DB ,MongoDB和Amazon的S3等其他流行的数据存储子系统很好地集成。

典型的用例包括:

  • 流处理 :从日志文件到传感器数据,应用程序开发人员越来越需要处理数据的“流”。 此数据经常从多个源同时稳定地到达。 尽管将这些数据流存储在磁盘上并进行回顾性分析当然是可行的,但有时在数据到达时对其进行处理并采取行动是明智或重要的。 例如,可以实时处理与金融交易有关的数据流,以识别并拒绝潜在的欺诈性交易。
  • 机器学习 :随着数据量的增长,机器学习方法变得越来越可行并且越来越准确。 在对新的和未知的数据应用相同的解决方案之前,可以对软件进行培训,以识别出易于理解的数据集中的触发器并对其采取行动。 Spark能够将数据存储在内存中并能够快速运行重复查询,这使其成为训练机器学习算法的理想选择。 一次又一次地大规模运行广泛相似的查询,可显着减少通过一组可能的解决方案以找到最有效的算法所需的时间。
  • 交互式分析 :业务分析师和数据科学家不是通过运行预定义的查询来创建销售,生产线生产率或股票价格的静态仪表板,而是希望通过提出问题,查看结果然后更改结果来探索其数据。初步提出问题或深入研究结果。 这种交互式查询过程要求诸如Spark之类的系统能够快速响应和适应。
  • 数据集成 :整个企业中不同系统生成的数据很少是干净的或一致的,以至于不能简单,轻松地组合起来进行报告或分析。 提取,转换和加载(ETL)流程通常用于从不同系统中提取数据,对其进行清理和标准化,然后将其加载到单独的系统中进行分析。 越来越多地使用Spark(和Hadoop)来减少此ETL流程所需的成本和时间。

谁使用Spark?

许多技术供应商已Swift支持Spark,并意识到有机会将现有的大数据产品扩展到Spark提供真正价值的领域,例如交互式查询和机器学习。 IBM和华为等知名公司已经在这项技术上投入了大量资金,并且越来越多的初创公司正在建立完全或部分依赖Spark的业务。 例如,在2013年,负责创建Spark的伯克利团队创建了Databricks,该公司提供了一个由Spark支持的托管端到端数据平台。 该公司资金雄厚,在2013年和2014年的两轮投资中获得了4,700万美元,Databricks的员工在改善和扩展Apache Spark项目的开源代码方面继续发挥着重要作用。

大型Hadoop供应商都已转移到支持Spark及其现有产品,并且每个供应商都在努力为其客户增加价值。 在其他地方,IBM,华为和其他公司都对Apache Spark进行了大量投资,将其集成到自己的产品中,并对Apache项目进行了改进和扩展。 中国搜索引擎百度,电子商务运营商阿里巴巴淘宝和社交网络公司等基于Web的公司都大规模运行基于Spark的业务,据报道,腾讯的8亿活跃用户每天生成700 TB以上的数据,以便在计算机上进行处理。超过8,000个计算节点的集群。

除了这些网络巨头之外, 诺华制药公司还依赖Spark来减少将模型数据交付研究人员的时间,同时确保遵守道德和合同保障。

什么使Spark脱颖而出?

选择Spark的原因很多,但三个是关键:

  • 简便 :可通过一组丰富的API访问Spark的功能,所有这些API都是专门为快速,轻松地与大规模数据进行交互而设计的。 这些API都有很好的文档记录和结构化,使数据科学家和应用程序开发人员可以直接将Spark快速投入工作。
  • 速度 :Spark专为提高速度而设计,可在内存和磁盘上运行。 使用Spark,来自Databricks的团队与来自加利福尼亚大学圣地亚哥分校的团队并列 2014年Daytona Gray Sort 100TB Benchmark挑战赛的第一名 。 挑战涉及处理静态数据集。 Databricks团队仅用23分钟即可处理存储在固态驱动器上的100 TB数据,而上一个获胜者则使用Hadoop和其他集群配置花费了72分钟。 当支持对存储在内存中的数据进行交互式查询时,Spark的性能甚至更好。 在这种情况下,有人声称Spark可以比Hadoop的MapReduce快100倍。
  • 支持 :Spark支持多种编程语言,包括Java,Python,R和Scala。 尽管通常与HDFS紧密相关,但Spark包括对与Hadoop生态系统及更多生态系统中许多领先存储解决方案的紧密集成的本机支持。 此外,Apache Spark社区庞大,活跃且国际化。 越来越多的商业提供商(包括Databricks,IBM和所有主要的Hadoop供应商)为基于Spark的解决方案提供全面的支持。

摘要

在此博客文章中,您了解了Spark,它的作用以及与其他数据处理引擎的不同之处。

如果您有关于Spark的其他问题,请在下面的评论部分中提问。

翻译自: https://www.javacodegeeks.com/2015/09/spark-101-what-is-it-what-it-does-and-why-it-matters.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iCore3 双核心板_ uC/OS-III】例程五:软件定时器

实验指导书及代码包下载: http://pan.baidu.com/s/1eSHenjs iCore3 购买链接: https://item.taobao.com/item.htm?id524229438677 转载于:https://www.cnblogs.com/xiaomagee/p/5453762.html

前端 vue 在可视化大屏领域的工作实践

导读:最近入职了一家互联网公司,主要是做物联网及互联网解决方案方向,我上来就接手了这个项目,是一个可视化管理地图,主要用于某国企物业的安全预警的职能,说来也比较倒霉,刚来这公司,公司做这个项目的前端和后端都跑路了,然后让我一个月给他整改完,说是重构吧,还不…

JavaScript GetAbsoultURl

var img document.createElement(A);img.src "/img/weixin.jpg"; //设置相对路径给Image, 此时会发送出请求url img.src; //此时相对路径已经变成绝对路径img.src null; //取消请求console.log(url);转载于:https://www.cnblogs.com/shidengyun/p/5453901.html…

【Java从入门到天黑|05】JavaSE入门之面向对象(上)

面向过程&面向对象 语言的进化发展跟生物的进化发展其实是一回事,都是”物以类聚”。相近的感光细胞聚到一起变成了我 们的眼睛,相近的嗅觉细胞聚到一起变成了我们的鼻子。 语句多了,我们将完成同样功能的相近的语句,聚到了一块儿,便于我们使用。于是,方法出现了! …

java自建ocr完整示例_Java 7:完整的invokedynamic示例

java自建ocr完整示例我当前的Java 7系列中的另一个博客条目。 这次它处理的是invokedynamic,这是JVM上用于方法调用的新字节码指令。 invokedynamic指令允许呼叫站点与呼叫接收者之间的动态链接。 这意味着您可以将正在执行方法调用的类链接到在运行时正在接收调用的…

【Java从入门到天黑|05】JavaSE入门之面向对象(下)

修饰符 1、static修饰符 1、static变量 在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。 静态变量和非静态变量的区别 静态变量属于类的,"可以"使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问. 1 public class Student{…

机电传动控制大作业 第一阶段

机电传动控制大作业 第一阶段 一.系统硬件接口定义1.电梯内操作界面: 标有1-7数字的按钮(每个按钮有一个LED灯,按下按钮灯即亮),开门,关门以及紧急报警的按钮和楼层指示的LED数码管。电梯门的打开和关闭需要两个行程开…

对后台返回的数据进行评分排序、时间排序!

导读:对后台返回的数据进行评分排序,时间排序,可以倒序,可以正序。 按照评分排序 正序 qualityScoreSort(){this.tableData0.sort((a, b) => {return b.qualityScore - a

@Deprecated新外观可能是什么?

JDK增强建议 (JEP)277(“ 增强的弃用 ”)建议“重新定义弃用注释,并提供工具来增强功能生命周期的尾端。” 当前 java.lang.Deprecated的一些限制使我困扰了一段时间。 我特别希望能够使用Deprecated提供文本&#xff…

C++反汇编书

1、 《C反汇编与逆向分析技术揭秘》 2、 转载于:https://www.cnblogs.com/cppskill/p/5459867.html

前端工程师直线学习路径

想自学前端?却不知道学习路径。报个班吧,又怕被坑。一张学习前端路径是带你少走N条弯路。最近两年,前端技术和三大框架地位趋于稳定,推荐这个前端开发学习路径。 新手自学前端的五大阶段。 第一阶段 想成为一名前端开发人员,第一步就是网页布局和效果实现。这时候你需要学…

第三章 SQL

SQL最早版本是由IBM开发的,最初叫做Sequel。20世纪70年代早期是作为System R项目的一部分。 3.1 SQL查询语言概览 数据定义语言数据操纵语言完整性视图定义事务控制嵌入式SQL和动态SQL授权3.2 SQL数据定义 3.2.1 基本类型 char(n):固定长度varchar(n)&am…

VS code常用插件推荐(总结整理篇)

简介 vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器。当前市面上常用的轻型代码编辑器主要是:sublime,notepad++,editplus,atom这几种。比起notepad++、editplus,vscode集成了许多IDE才具有的功能,比起它们更像一个…

appengine_Google Appengine登台服务器操作方法

appengineGoogle的App Engine开箱即用,支持版本化部署。 您可以非常轻松地在各修订版之间来回切换,这是在上线之前正确测试应用程序的一项很棒的功能。 有一个主要问题:应用程序的所有版本共享同一数据存储。 因此,如果要迁移数据…

Python全栈开发之3、数据类型set补充、深浅拷贝与函数

转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5466082.html 一、基本数据类型补充 set是一个无序而且不重复的集合,有些类似于数学中的集合,也可以求交集,求并集等,下面从代码里来看一下set的用法,如果对这些用法不太熟悉的话…

拿着5家offer的Java,对面试官做了什么?

大家好,我是孙叫兽。本期分享内容从Java初级开始说起,来讲一下要想拿到offer,你必须要做哪些充足准备! 先从初级Java开始,当你还是一个初级Java的时候,要想拿到offer,首先要关注自己的简历&…

Spring综合课程总结

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适…

进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的…

1003 阶乘后面0的数量

1003 阶乘后面0的数量 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KBn的阶乘后面有多少个0&#xff1f; 6的阶乘 1*2*3*4*5*6 720&#xff0c;720后面有1个0。Input一个数N(1 < N < 10^9) Output输出0的数量 Input示例5 Output示例1 //统计2和5个数就好…

《HarmonyOS实战——前端开发华为鸿蒙系统应用 OpenHarmony JS》

《HarmonyOS实战——前端开发华为鸿蒙系统应用 OpenHarmony JS》