列举spark的五种部署方式是什么?

列举spark的五种部署方式是什么?,第1张

Spark部署模式分为Local模式(本地单机模式)和集群模式,在Local模式下,常用于本地开发程序与测试,而集群模式又分为Standalone模式(集群单机模式)、Yarn模式和Mesos模式.

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

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

运行该模式非常简单,只需要把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:2.4.0、maven:3.6.3、scala:2.11.12、scalatest:3.0.4(版本要自己去查查对应的)

编译命令:

打包成Spark可运行版:

将集群中的Hadoop的各个配置文件拷贝过来A的 HADOOP_CONF_DIR 中,core-site.xml 需要修改以下内容即,将net.topology.script.file.name对应的 值 注释掉,否则会报错。

WSL Ubuntu 的.bashrc文件追加内容:

任务提交:

结果,看app_ID:

猜测:

(补充) 关于Maven的配置问题:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11552908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存