千家信息网

Spark提交的方式是什么

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容主要讲解"Spark提交的方式是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spark提交的方式是什么"吧!1、Spark是什么?○ 高可伸
千家信息网最后更新 2025年02月03日Spark提交的方式是什么

本篇内容主要讲解"Spark提交的方式是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spark提交的方式是什么"吧!

1、Spark是什么?

○ 高可伸缩性

○ 高容错

○ 基于内存计算

2、Spark的生态体系(BDAS,中文:伯利克分析栈)

○ MapReduce属于Hadoop生态体系之一,Spark则属于BDAS生态体系之一

○ Hadoop包含了MapReduce、HDFS、HBase、Hive、Zookeeper、Pig、Sqoop等

○ BDAS包含了Spark、Shark(相当于Hive)、BlinkDB、Spark Streaming(消息实时处理框架,类似Storm)等等

○ BDAS生态体系图:

3、Spark与MapReduce

优势:

○ MapReduce通常将中间结果放到HDFS上,Spark是基于内存并行大数据框架,中间结果存放到内存,对于迭代数据Spark效率高。

○ MapReduce总是消耗大量时间排序,而有些场景不需要排序,Spark可以避免不必要的排序所带来的开销

○ Spark是一张有向无环图(从一个点出发最终无法回到该点的一个拓扑),并对其进行优化。

4、Spark支持的API

Scala、Python、Java等

5、运行模式

○ Local (用于测试、开发)

○ Standlone (独立集群模式)

○ Spark on Yarn (Spark在Yarn上)

○ Spark on Mesos (Spark在Mesos)

6、运行时的Spark

Driver程序启动多个Worker,Worker从文件系统加载数据并产生RDD(即数据放到RDD中,RDD是一个数据结构),并按照不同分区Cache到内存中。如图:

8、容错Lineage

8.1、容错基本概念

○ 每个RDD都会记录自己所依赖的父RDD,一旦出现某个RDD的某些partition丢失,可以通过并行计算迅速恢复

8.2、Narrow Dependent(窄依赖)和Wide Dependent(宽依赖)

○ RDD的依赖又分为Narrow Dependent(窄依赖)和Wide Dependent(宽依赖)

○ 窄依赖:每个partition最多只能给一个RDD使用,由于没有多重依赖,所以在一个节点上可以一次性将partition处理完,且一旦数据发生丢失或者损坏可以迅速从上一个RDD恢复

○ 宽依赖:每个partition可以给多个RDD使用,由于多重依赖,只有等到所有到达节点的数据处理完毕才能进行下一步处理,一旦发生数据丢失或者损坏,则完蛋了,所以在这发生之前必须将上一次所有节点的数据进行物化(存储到磁盘上)处理,这样达到恢复。

○ 宽、窄依赖示例图:

9、缓存策略

Spark通过useDisk、useMemory、deserialized、replication4个参数组成11种缓存策略。

useDisk:使用磁盘缓存(boolean )

useMemory:使用内存缓存(boolean)

deserialized:反序列化(序列化是为了网络将对象进行传输,boolean:true反序列化\false序列化)

replication:副本数量(int)

通过StorageLevel类的构造传参的方式进行控制,结构如下:

class StorageLevel private(useDisk : Boolean ,useMemory : Boolean ,deserialized : Boolean ,replication:Ini)

10、提交的方式

○ spark-submit(官方推荐)

○ sbt run

○ java -jar

提交时可以指定各种参数

 ./bin/spark-submit    --class    --master  --deploy-mode  --conf = ... # other options [application-arguments]

例如:

到此,相信大家对"Spark提交的方式是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0