spark有什么作用_Spark 101:它是什么,它做什么以及为什么起作用

spark有什么作用

最近,许多大数据的讨论都使用了新名称。 有人认为流行的新手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。

2013年,Spark成为Apache Software Foundation的孵化项目,并于2014年初被提升为该基金会的顶级项目之一。 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

spark有什么作用

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

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

相关文章

python中比较运算符怎么使用_实例说明Python中比较运算符的使用

下表列出了所有Python语言支持的比较操作符。假设变量a持有10和变量b持有20,则:例如:试试下面的例子就明白了所有的Python编程语言提供的比较操作符:#!/usr/bin/pythona 21b 10c 0if ( a b ):print "Line 1 - a is equal…

C++最佳实践 | 可维护性

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删C最佳实践:1. 工具2. 代码风格3. 安全性4. 可维护性(本文)5. 可移植性及多线程6. 性能7. 正确性和脚本可维护性避免使用编…

rx.observable_使用Java 8 CompletableFuture和Rx-Java Observable

rx.observable我想探索一个使用Java 8 CompletableFuture和Rx-Java Observable的简单分散聚集场景。 场景很简单–产生大约10个任务,每个任务返回一个字符串,最终将结果收集到一个列表中。 顺序的 其顺序版本如下: public void testSequen…

springboot启动自动关闭_App自动化测试用例格式和App的启动与关闭

【一】基本的用例格式这里使用unittest测试框架来编写用例。注:unittest可以提供用例的组织和管理、预期结果验证、批量化运行、产生测试报告等功能。新建一个calculator的python package,新建一个calculator_test.py,导入以下包。按照标准的…

C++最佳实践 | 可移植性及多线程

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删C最佳实践:1. 工具2. 代码风格3. 安全性4. 可维护性5. 可移植性及多线程(本文)6. 性能7. 正确性和脚本可移植性明确使用的…

eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central

eap aka如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此)。 基本原理 不幸的是,Gradle(和许多其他构建工具)没有提供任何机制来本地加密密码(或…

万维网发布服务 w3svc 已停止 除非万维_万维网和互联网的区别

常见的一个误解是,人们认为互联网(Internet,也叫因特网)和万维网(World Wide Web)是同样的事物。一些词语如“互联网”、“万维网”,“网”和“网络”经常可以交替使用。但是,从技术的角度来说,“互联网”和“万维网”是两个独立的…

C/C++项目开发:通讯录管理系统源码,C语言链表实现

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删hello,各位小伙伴们大家好!你们今天有敲代码嘛?如果有熟悉的小伙伴看到我,就知道又可以来学习源码…

javafx窗体程序_JavaFX真实世界应用程序:欧洲电视网广播联盟

javafx窗体程序我荣幸地与今年在德累斯顿Saxonia 系统公司工作的Alexander Casall一起在JavaOne上展示了多个JavaFX Real-World应用程序。 在准备本次演讲时,我们向客户和合作伙伴发送了一份调查表,并向他们询问了一些与他们的项目,他们的应用…

spring 数据库 链接db2_Druid,Java语言中最好的数据库连接池

Druid是Java语言中最好的数据库连接池,这话不是我说的,是Druid官方文档自己这样描述的,这是何等的自信!连接池的作用,跟线程池的作用大同小异,都是为了减少频繁的创建销毁连接IO,提升性能。drui…

编程知识:既然已经有数组了,为什么还要链表?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删对于不少开发者而言,链表(linked list)这种数据结构既熟悉又陌生,熟悉是因为它确实是非常基础的数据结构,陌生…

jcache_随机JCache内容:多个提供程序和JMX Bean

jcacheJCache(JSR 107)是用于缓存的Java标准…足够了。 没有更多介绍性的东西。 这是一则速成文章,内容涉及 多个JCache提供程序配置,以及 功能:通过JMX Mbeans的JCache统计信息 管理多个JCache提供程序 如果您只使…

python webbrowser点击_用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!...

引言如果谈到这几年手机上各平台最常见的引流福利,必然是答题赢大奖系列小游戏了。像什么头号英雄,百万玩家之类的,充斥在我们生活中,同时也成为了我们生活中常见的娱乐方式。但是有时候就会想,能不能实现手机自动答题…

程序员的年终总结,各种版本各种残

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删朱自清版这几天心里颇不宁静了,眼看上线的日子越来越临近,而项目Bug之多,密密的交叉着,却无从改起…

使用 unsafe_使用Unsafe真的是关于速度或功能吗?

使用 unsafe总览 大约6年前,我开始使用一个类,直到那时,它只是一个好奇心sun.misc.Unsafe 。 我曾使用它进行反序列化和重新抛出Exception,但没有使用它的全部功能或公开谈论它。 我看到的第一个严重使用Unsafe的开源库是Disrupt…

securecrt哪个版本好用_电脑跑分测试软件哪个好?好用的电脑跑分软件推荐

想要直观的了解自己电脑状况,那么一款好用的电脑跑分软件无疑是必不可少的,毕竟他能够将测试结果用跑分的形式计算出来。那么,电脑跑分软件哪个比较好呢?下面是小编分享的好用的电脑跑分软件推荐,游戏玩家们可不要错过…

wildfly_从WildFly 9(子系统)中运行OkHttpClient

wildfly几天前, WildFly 9发布了,可以肯定的重点之一是Undertow Web子系统中对HTTP / 2.0的支持。 随着Hawkular最近开始使用WildFly 9(从8.2开始)作为其基础服务器,尝试使用http2连接从Hawkular-Wildfly-Monitor客户端…

C语言,单片机绕不过的坎,你对C语言内存分配了解多少呢

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删一、static在C语言里面可以用来修饰变量,也可以用来修饰函数。1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、…

setcellvalue 格式_POI对Excel单元格的格式的设置参数

最近在做导出Excel的功能封装,遇到了几个问题:单元格宽度问题数据不是数字格式问题格式化了之后显示的不是数字而是######的问题(其实是因为单元格宽度不够导致的无法显示格式化之后的内容)下面先说说解决方法:1、单元格宽度问题这个问题有两…

内存 增量数据持久_内存中数据模型和大数据持久性

内存 增量数据持久ORM框架在需要与关系数据库进行交互时可以帮助开发人员。 对于关系数据库,有许多出色的ORM框架,例如Hibernate和Apache OpenJPA,其中一些确实很棒。 如今,大数据正在涌现,越来越多的人开发在大数据上…