maven依赖 spark sql_大数据计算框架Spark之提交Application

fcc239bfa78f75e8e1c814ed016b9ad7.png

Spark的 bin目录下的spark-submit可被用于在集群上执行应用,他可被用于所有类型的cluster manager。

绑定Application的依赖

如果代码依赖其他工程,连同Application一起打包,使用maven或sbt。

并将Spark和Hadoop相关的依赖设置为provided:

...

...

...

provided

因为这些依赖在运行时由cluster manager提供。

使用spark-submit

./bin/spark-submit

--class

--master

--deploy-mode

--conf =

... # other options

[application-arguments]

常用选项:

--class:应用入口。

--master:master URL

--deploy-mode:部署驱动到worker node(cluster)或本地执行(client)。默认是client。

--conf:任意的Spark configuration键值对(key=value)形式的属性。

application-jar:打包的jar路径。这个URL必须对于集群是全局可见的。例如:hdfs:// path 或每个节点都有file://路径。

application-arguments:传给main函数的参数。

常用部署策略

1)从一台网关服务器提交应用,这台机器与集群中的机器处于同一位置,即为集群中的一台机器。这种部署方式适合client模式,driver程序作为集群的客户端在spark-submit线程内启动,应用程序的输入输出附加到控制台。这种模式特别适合REPL(Read-eval-print-loop,交互式解析器),例如Spark shell。

2)如果在远离集群的机器上提交应用(比如自己的笔记本电脑),使用cluster模式比较合适,这样可以使driver和executor间的网络延迟最小化。

Master URLs

c79586793255c1ca062eec243279ba4f.png

从一个文件加载配置

spark-submit脚本默认从配置文件加载配置值并传递给你的应用。默认读取spark目录下的conf/spark-defaults.conf。

加载默认配置可以免除通过spark-submit指定部分选项。例如配置文件中设置了spark.master,那么--master就不用指定了。一般,使用SparkConf设置的配置具有最高优先级,之后是spark-submit,最后才是默认配置。

如果不知道配置来自于哪,可以使用spark-submit到的--verbose选项打印调试信息。

高级依赖管理

使用spark-submit提交命令时,application jar连同--jars选项列表中的jar会自动传送到集群上,--jars后的多个url必须要用逗号分隔,这个列表会被包含到driver和executor路径中。--jars不支持目录形式。

Spark使用下面的URL模式:

1)file:--绝对路径,file:/URI通过driver的HTTP file server提供服务,每个executor都从driver的HTTP file server拉取文件

2)hdfs:, http:, https:, ftp:--每个executor都从指定的URL拉取文件

3)local:--存在于每个worker node上的本地文件,这意味着没有网络IO的影响,对于胖jar而言是一种理想的方式。

Jar和文件会被拷贝到executor节点(可能多个)的每个SparkContext的工作目录。这可能会占用大量的硬盘空间。YARN能够自动清理这些不再使用的文件。Spark standalone模式下可以通过配置spark.worker.cleanup.appDataTtl属性开启自动清理特性。

用户也能使用--packages,包含一个以逗号分隔的Maven坐标列表。坐标的格式为:groupId:artifactId:version。还可以使用--repositories添加依赖,多个依赖以逗号分隔。例如https://user:password@host/....,https://user:password@host/....

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值