Spark初识-什么是Spark

Spark是一个基于内存的开源计算框架,于2009年诞生于加州大学伯克利分校AMPLab(AMP:Algorithms,Machines,People),它最初属于伯克利大学的研究性项目,后来在2010年正式开源,并于 2013 年成为了 Apache 基金项目,到2014年便成为 Apache 基金的顶级项目,该项目整个发展历程刚过六年时间,但其发展速度非常惊人。
正由于Spark来自于大学,其整个发展过程都充满了学术研究的标记,是学术带动Spark核心架构的发展,如弹性分布式数据集(RDD,resilient distributed datasets)、流处理(Spark streaming)、机器学习(MLlib)、SQL分析(Spark SQL)和图计算(GraphX)。

一、Spark是什么

Spark,是一种“One Stack to rule them all”的大数据计算框架,是一种基于内存计算的框架,是一种通用的大数据快速处理引擎。

这一站式的计算框架,包含了Spark RDD(这也是Spark Core用于离线批处理)、Spark SQL(交互式查询)、Spark Streaming(实时流计算)、MLlib(机器学习)、GraphX(图计算)等重要处理组件。

二、Spark的发展历史

2009年诞生于美国加州大学伯克利分校AMP 实验室,

2010年通过BSD许可协议开源发布,

2013年捐赠给Apache软件基金会并切换开源协议到切换许可协议至 Apache2.0,

2014年2月,Spark 成为 Apache 的顶级项目

2014年11月, Spark的母公司Databricks团队使用Spark刷新数据排序世界记录

Spark 成功构建起了一体化、多元化的大数据处理体系。在任何规模的数据计算中, Spark 在性能和扩展性上都更具优势。

Hadoop 之父Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的MapReduce 引擎的使用将下降,由Apache Spark 取代)

Hadoop 商业发行版本的市场领导者Cloudera 、HortonWorks 、MapR 纷纷转投Spark,并把Spark 作为大数据解决方案的首选和核心计算引擎。

2014 年的如此Benchmark 测试中, Spark 秒杀Hadoop ,在使用十分之一计算资源的情况下,相同数据的排序上, Spark 比Map Reduce 快3 倍! 在没有官方PB 排序对比的情况下,首次将S park 推到了IPB 数据(十万亿条记录) 的排序,在使用190 个节点的情况下,工作负载在4 小时内完成, 同样远超雅虎之前使用3800 台主机耗时16 个小时的记录。

2015年6月, Spark 最大的集群来自腾讯–8000 个节点, 单个Job 最大分别是阿里巴巴和Databricks–1PB ,震撼人心!同时,Spark的Contributor 比2014 年涨了3 倍,达到730 人:总代码行数也比2014 年涨了2 倍多,达到40 万行。

IBM 于2015 年6 月承诺大力推进Apache Spark 项目, 并称该项目为:以数据为主导的,未来十年最重要的新的开源项目。这-承诺的核心是将Spark 嵌入IBM 业内领先的分析和商务平台,并将Spark 作为一项服务,在IBMB平台上提供给客户。IBM 还将投入超过3500 名研究和开发人员在全球10余个实验室开展与Spark 相关的项目,并将为Spark 开源生态系统无偿提供突破性的机器学习技术–IBM SystemML。同时,IBM 还将培养超过100 万名Spark 数据科学家和数据工程师。

2016 年,在有“计算界奥运会”之称的国际著名Sort Benchmark全球数据排序大赛中,由南京大学计算机科学与技术系PASA 大数据实验室、阿里巴巴和Databricks 公司组成的参赛因队NADSort,以144美元的成本完成lOOTB 标准数据集的排序处理,创下了每TB 数据排序1.44美元成本的最新世界纪录,比2014 年夺得冠军的加州大学圣地亚哥分校TritonSort团队每TB 数据4.51美元的成本降低了近70%,而这次比赛依旧使用Apache Spark 大数据计算平台,在大规模并行排序算法以及Spark 系统底层进行了大量的优化,以尽可能提高排序计算性能并降低存储资源开销,确保最终赢得比赛。

在FullStack 理想的指引下,Spark 中的Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和库之间可以无缝地共享数据和操作, 这不仅打造了Spark 在当今大数据计算领域其他计算框架都无可匹敌的优势, 而且使得Spark 正在加速成为大数据处理中心首选通用计算平台。

3

三、Spark的优点

Spark之所以这么受关注,主要是因为其有与其他大数据平台不同的特点,主要如下。

1.轻量级快速处理

与 Hadoop 的 MapReduce 相比, Spark 基于内存的运算是 MapReduce 的 100 倍.基于硬盘的运算也要快 10 倍以上.

Spark 实现了高效的 DAG 执行引擎, 可以通过基于内存来高效处理数据流

4

2.易于使用

Spark 支持 Scala, Java, Python, R 和 SQL 脚本, 并提供了超过 80 种高性能的算法, 非常容易创建并行 App
 而且 Spark 支持交互式的 Python 和 Scala 的 shell, 这意味着可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法, 而不是像以前一样 需要打包, 上传集群, 验证等. 这对于原型开发非常重要.

5

3. 通用、支持复杂查询

Spark 结合了SQL, Streaming和复杂分析.
  Spark 提供了大量的类库, 包括 SQL 和 DataFrames, 机器学习(MLlib), 图计算(GraphicX), 实时流处理(Spark Streaming) .
  可以把这些类库无缝的柔和在一个 App 中.
  减少了开发和维护的人力成本以及部署平台的物力成本.

6

4. 可融合性强

Spark 可以非常方便的与其他开源产品进行融合.
  比如, Spark 可以使用 Hadoop 的 YARN 和 Appache Mesos 作为它的资源管理和调度器, 并且可以处理所有 Hadoop 支持的数据, 包括 HDFS, HBase等.

7

5.实时的流处理

对比MapReduce只能处理离线数据,Spark还能支持实时流计算。Spark Streaming主要用来对数据进行实时处理,当然在YARN之后Hadoop也可以借助其他的工具进行流式计算。对于Spark Streaming,著名的大数据产品开发公司Cloudera曾经对Spark Streaming有如下评价:

  1. 简单、轻量且具备功能强大的API,Sparks Streaming允许用户快速开发流应用程序。
  2. 容错能力强,不像其他的流解决方案,比如使用Storm需要额外的配置,而Spark无需额外的代码和配置,因为直接使用其上层应用框架Spark Streaming就可以做大量的恢复和交付工作,让Spark的流计算更适应不同的需求。
  3. 集成性好,为流处理和批处理重用了同样的代码,甚至可以将流数据保存到历史数据中(如HDFS)。

6.活跃和不断壮大的社区

Spark起源于2009年,当下已有超过50个机构730个工程师贡献过代码,与2014年6月相比2015年代码行数扩大了近三倍(数据源于Spark Summit 2015公布的数据),这是个惊人的增长

*、本文参考

Spark官网

深入浅出,一文让你了解什么是Spark

Spark入门——什么是Hadoop,为什么是Spark?
spark是什么及发展趋势概述

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

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

相关文章

系统优化

1、关闭selinux sed -i ‘s/SELINUXenforcing/SELINUXdisabled’ setenforce 0 2.精简开机服务 ntsysv setup system service

Spark初识-Spark与Hadoop的比较

Spark,是分布式计算平台,是一个用scala语言编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎 Hadoop,是分布式管理、存储、计算的生态系统;包括HDFS(存储)、MapReduce(…

Spark初识-Spark基本架构概览使用

当需要处理的数据量超过了单机尺度(比如我们的计算机有4GB的内存,而我们需要处理100GB以上的数据)这时我们可以选择spark集群进行计算,有时我们可能需要处理的数据量并不大,但是计算很复杂,需要大量的时间,这时我们也可…

Spark初识-弹性分布式数据集RDD

Spark 的核心是建立在统一的抽象弹性分布式数据集(Resiliennt Distributed Datasets,RDD)之上的,这使得 Spark 的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理。 一、RDD概念 RDD 是 Spark 提供…

Spark入门- Spark运行Local本地模式

一、Spark单机模式部署 Spark版本 : spark-2.4.7-bin-hadoop2.7 1、安装配置JDK环境 2、下载Spark 官网下载http://spark.apache.org/ 然后上传到LInux服务器上 3、解压 tar -zxvf spark-2.4.7-bin-hadoop2.7.tgz解压目录说明 bin 可执行脚本 conf …

Spark入门-了解Spark核心概念

在本文中我们将从Spark集群角度和程序应用的角度来对相关概念进行了解 一. 站在集群角度 1.1 Master Spark 特有资源调度系统的 Leader。掌管着整个集群的资源信息,类似于 Yarn 框架中的 ResourceManager,主要功能: 监听 Worker&#xff0…

Spark运行standalone集群模式

spark的集群主要有三种运行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone运行模式,并尝试搭建一个standalone集群 一、standalone模式 standalone模式,是spark自己实现的&#xf…

docker原理

a.更快速的支付和部署:开发者可以使用一个标准的镜像来构建一套开发容器 ,开发完成之后,运维人员可以直接使用这个容器来部署代码。 b.更高效的虚拟化: Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此 可以实现更高的性能和效。 I 0c更轻松的迁移和扩展…

创造型模式——工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的…

创造型模式——抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的…

创造型模式——单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建…

创造性模式——原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建…

Java集合:关于 LinkedList 的内容盘点

本篇内容包括:LinkedList 的概述、LinkedList 的结构既双向链表实现与LinkedList-Node 结构、LinkedList 的使用(构造方法&常用方法)、关于 Queue 队列的介绍、关于 ArrayList 和 LinkedList 的区别以及算法:翻转链表&#xf…

oracle迁移父子数据

现有需求如下,业务组织单元表中id字段数据在另外一个系统全部重复,但需要将此业务单元组织导入另一系统 业务组织单元表Isc_Specialorg_Unit 表中存在ID字段为子节点数据,parent_id为父节点数据,orgpath为组织路径 现在做如下操…

oracle表空间

概念 表空间和数据文件 ●表空间是逻辑存储概念,一个表空间是一个或多个数据文件的逻辑集合 ●存储对象(表、索引)逻辑的存储在表空间上,而存储对象的数据物理的存放在数据文件上 ●数据库至少需要一个叫做system的表空间,也就是系统表空间 ●…

oracle日志

日志分类 redo log files联机日志或重做日志 archived log files归档日志 1184198alert log files 告警日志 trace files user_ _dump_ _dest 用户信息日志如跟踪会话日志 background dump_ dest进程日志还有其他一-些不常用的日志 v$database的log_mode 数据库归档模式…

MySQL:分库分表知识点盘点

本篇内容包括:数据库瓶颈、分库分表以及分库分表相关问题 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用…

oracle的sga

sga SGA的管理 ■有三种方式: ●8i:SGA的总大小由所有内存组件大小之和决定,不能直接定义SCA大小。对内部组件大小的修改必须在数据库重起 后 才能生为,所以叫做SGA的静态管理。 ●9i&#xff…

MySQL:主从相关知识点盘点

本篇内容包括:MySQL 主从复制简介、主从复制的原理以及主从搭建 一、MySQL 主从复制简介 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用**「主从复制」**。 比如:在复杂的业务系统中&#x…

oracle导出expdp

expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵,作用是为了将数据库中的逻辑对象,比如表、用户、全库、表空间进 行导入,导出 命令解析 ATTACH ATTACH [[schema_name.]job_name] schema_name 表示用户名,job_name 表示导出的作…