spark(1)---概述

spark官网地址:http://spark.apache.org/

1、什么是spark?

1)、spark是2008年诞生于加州大学伯克利分校AMP实验室开发的通用大数据框架。2010年开源,2013年6月成为apache孵化项目,2014年2月成为apache顶级项目。

2)、spark是一种快速、通用、可扩展的大数据分析引擎。

3)、spark是用scala进行编写的框架,为了更好学习spark,需要先学习scala多范式编程语言。

官方定义:

 翻译过来:apache spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。

2、spark四大特点

spark使用scala语言进行实现,它是一种面向对象、函数式编程语言。

它能够像操作本地集合一样轻松的操作分布式数据集。

spark具有运行速度快、易于使用、通用性强、随处可运行 四大特点。

2.1、速度快(speed)

 由于spark支持内存计算,并且使用DAG(有向无环图)执行引擎支持无环数据流,所以官方宣称其在内存中的运算速度要比hadoop的MapReduce快100倍,在硬盘中要快10倍。

那么spark和MapReduce相比,为什么速度要快?

1)、spark处理数据时,可以将中间处理结果数据存储到内存中。

2)、spark job调度以DAG方式,并且每个任务Task执行以线程(Thread)方式,并不是像MapReduce以进程(Process)方式执行。

注:什么是有向无环图(DAG)?

如上图,图1是有向树、图2是DAG有向无环、图3是有向图。它们都是一种数据结构。

如果一个有向图无法从任意顶点出发,经过若干条边回到该点,则这个图就是有向无环图。

如上图,4612是一条路径,465是一条路径,并且图中不存在从顶点经过若干条边后能回到该点。

在spark中,有向无环图的连贯关系被用来表达RDD之间的依赖关系,其中顶点表示RDD、以及产生该RDD的操作算子,有方向的边表示算子之间的相互转化。

 

 

2.2、易于使用(Ease of use)

 spark支持java、scala、python、R语言和SQL语言在内的多种语言

2.3、通用性强(generality)

在spark的基础上,spark还提供Spark SQL(结构化数据处理)、spark Streaming(流式任务处理)、MLlib(机器学习算法库)、Graph(提供图形和图形并行化计算)

我们可以在一个应用中无缝的使用这些工具库 

2.4、随处可运行(Runs Everywhere) 

 

spark支持多种运行方式,包括在hadoop和mesos上,也支持standalone的独立运行模式,同时也可以运行在云kubernetes(spark2.3开始支持)上。

3、spark的运行模式

spark框架编写的应用程序可以运行在本地模式、集群模式、云服务,方便我们开发、测试和生产部署。

 3.1、本地模式(Local Mode)

将spark应用程序中任务Task运行在一个本地JVM process进程中,通常开发测试使用。

3.2、集群模式(Cluster Mode)

将spark应用程序运行在集群上。比如:Hadoop Yarn集群、Standalone(spark自带集群)、Apache Mesos集群

1)、yarn集群模式:一般生产环境使用,将spark应用运行在yarn集群之上,由yarn负责资源管理,spark负责任务调度和计算。

好处是:计算资源按需伸缩,集群利用率高,共享底层存储,避免数据跨集群迁移。

2)、standalone集群模式:开发测试以及生产环境使用,类似yarn架构,典型的master/slave模式,使用zookeeper搭建高可用,避免master单点故障问题。

3)、mesos集群模式:国内使用较少,运行在mesos资源管理器框架之上,由mesos负责资源管理,spark负责任务调度和计算。

3.3、云服务:Kubernetes模式

spark2.3支持将spark应用运行在k8s上

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值