Spark概述

一.什么是Spark

在这里插入图片描述
在这里插入图片描述
Spark是一种快速,通用,可扩展,并基于内存迭代运算的大数据分析引擎。
2009年诞生于加州大学伯克利分校AMPLab
2013年6月成为Apache孵化项目
2014年2月成为Apache顶级项目。
该项目采用Scala编写

目前,Spark生态系统已经发展成为有用众多子项目的生态圈,类似于Hadoop。
SparkSQL 、Spark Streaming ,、GraphX、SparkR等均是该生态圈的一员。
和Hadoop不同的是,Spark是基于内存计算的大数据并行计算框架,支持众多的计算模式,包括交互式查询以及流处理等。当然也是包括Mapreduce的计算模型框架

Spark适用于各种不同的分布式平台场景.在Spark这个统一的框架中,可以做各种不同计算。因为Spark可以简单低耗地将各种处理流程整合在一起,对于数据分析是非常有意义的,同时大大减轻了对各种平台分别管理的负担。

大一统的软件栈,各个组件关系密切并且可以相互调用:
好处:
1、软件栈中所有的程序库和高级组件 都可以从下层的改进中获益。2、运行整个软件栈的代价变小了。不需要运 行 5 到 10 套独立的软件系统了,一个机构只需要运行一套软件系统即可。系统的部署、维护、测试、支持等大大缩减。3、能够构建出无缝整合不同处理模型的应用
在这里插入图片描述

Spark Core:实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统 交互等模块。Spark Core
中还包含了对弹性分布式数据集(resilient distributed dataset,简称RDD)的 API 定义。

Spark SQL:是 Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 或者 Apache Hive
版本的 SQL 方言(HQL)来查询数据。Spark SQL 支持多种数据源,比 如 Hive 表、Parquet 以及 JSON 等。

Spark Streaming:是 Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API,并且与 Spark
Core 中的 RDD API 高度对应。

Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据
导入等额外的支持功能。

集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计 算。为了实现这样的要求,同时获得最大灵活性,Spark
支持在各种集群管理器(cluster manager)上运行,包括 Hadoop YARN、Apache Mesos,以及 Spark
自带的一个简易调度 器,叫作独立调度器。

二.Spark特点

1.快速
下图显示,Spark的基于内存的速度是Hadoop1倍以上,基于硬盘的速度也在10倍以上,Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。计算的中间结果是存在于内存中的
在这里插入图片描述
和Mapreduce比较:
1.Mapreduce目前只有Map和Reduce可以实现的接口

2.编程过于死板,有些时候写一个功能,比如查找共同好友,需要写2个map和2个reduce程序,过于复杂。而相对于scala而言就更容易多了

3.不适合交互式迭代运算,由于交互式迭代运算,需要更快的处理时间,很明显,Mapreduce的基于硬盘的运算是不可以的,对于机器学习,图运算,就更不可能了

4.在Mapreduce的shuffle过程中,需要排序,如,map端的数据从环形缓冲区出来进行的归并排序,以及reduce端的快速排序,但是我们有些操作并不需要排序操作
5.在任务调度过程中,处理效率相当低效,需要yarn进行踔厉,如yarn内部启动contain等

2.易使用
Spark提供了超过80个算法,能够快速地简历不同的应用。
支持Java,Python,Scala
Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。

在这里插入图片描述

3.通用
Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。
在这里插入图片描述
4.兼容性
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。
在这里插入图片描述

三.执行一个简单的程序

1.standLone

[root@l4 jars]# spark-submit --class org.apache.spark.examples.SparkPi \
 --master spark://l4:7077 \
  --executor-memory 512m \
   --total-executor-cores 1 spark-examples_2.11-2.2.0.jar 100

1)–class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
2)–master: 集群的master URL (如 spark://l4:7077)
3)–deploy-mode: 是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)*
4)–conf: 任意的Spark配置属性, 格式key=value. 如果值包含空格,可以加引号“key=value”. 缺省的Spark配置
5)application-jar: 打包好的应用jar,包含依赖. 这个URL在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar.
6)application-arguments: 传给main()方法的参数

Master URL:
在这里插入图片描述
下图是官网上所有的URl
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值