spark几种部署模式,每种模式特点及搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark几种部署模式,每种模式特点及搭建相关的知识,希望对你有一定的参考价值。

参考技术A

下面对集中部署模式进行详细介绍

该模式运行任务不会提交在集群中,只在本节点执行,有两种情况

运行该模式非常简单,只需要把Spark的安装包解压后,改一些常用的配置即可使用,而不用启动Spark的Master、Worker守护进程( 只有集群的Standalone方式时,才需要这两个角色),也不用启动Hadoop的各服务(除非你要用到HDFS)。

Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定。将Spark应用以多线程的方式直接运行在本地,一般都是为了方便调试,本地单机模式分三类:

搭建步骤:

(中间有报错:raise IllegalArgumentException(s.split(\': \', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u\'Unable to locate hive jars to connect to metastore. Please set spark.sql.hive.metastore.jars.\',网上提示查看jdk版本,发现ubuntu 18.04默认是openjdk-11-jdk包(java -version提示10.0.1)。重新安装openjdk-8-jdk版本不报错)

运行:
使用spark-shell、spark-submit、pyspark
例如使用spark-shell:

local:单机、单核运行

local[k]:启动k个executor

local[ ]:启动跟cpu数目相同的 executor*

上述情况中,local[N]与local[*]相当于用单机的多个线程来模拟spark分布式计算,通常用来检验开发出来的程序逻辑上有没有问题。

其中N代表可以使用N个线程,每个线程拥有一个core。

这些任务的线程,共享在一个进程中,可以开到,在程序的执行过程中只会产生一个进程,这个进程揽下了所有的任务,既是客户提交任务的client进程,又是spark的driver程序,还是spark执行task的executor

这种运行模式,和Local[N]很像,不同的是,它会在单机启动多个进程来模拟集群下的分布式场景,而不像Local[N]这种多个线程只能在一个进程下委屈求全的共享资源。通常也是用来验证开发出来的应用程序逻辑上有没有问题,或者想使用Spark的计算框架而没有太多资源。

用法:提交应用程序时使用local-cluster[x,y,z]参数:x代表要生成的executor数,y和z分别代表每个executor所拥有的core和memory数。

上面这条命令代表会使用2个executor进程,每个进程分配3个core和1G的内存,来运行应用程序。可以看到,在程序执行过程中,会生成如下几个进程:

以上是关于spark几种部署模式,每种模式特点及搭建的主要内容,如果未能解决你的问题,请参考以下文章

11月大数据面试题复习

11月大数据面试题复习

LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

Spark部署模式

Flink的local模式部署安装

Spark学习笔记--环境搭建