部署指南——集群模式概述和提交应用

集群模式概述

组件

Spark 应用在集群上作为独立的进程组来运行,在您的 main 程序中通过 SparkContext 来协调(称之为 driver 程序)。

具体的说,为了运行在集群上,SparkContext 可以连接至几种类型的 Cluster Manager(既可以用 Spark 自己的 Standlone Cluster Manager,或者 Mesos,也可以使用 YARN),它们会分配应用的资源。一旦连接上,Spark 获得集群中节点上的 Executor,这些进程可以运行计算并且为您的应用存储数据。接下来,它将发送您的应用代码(通过 JAR 或者 Python 文件定义传递给 SparkContext)至 Executor。最终,SparkContext 将发送 Task 到 Executor 以运行。

Cluster Manager 类型

系统目前支持三种 Cluster Manager:

  • Standalone – 包含在 Spark 中使得它更容易来安装集群的一个简单的 Cluster Manager。

  • Apache Mesos – 一个通用的 Cluster Manager,它也可以运行 Hadoop MapReduce 和其它服务应用。

  • Hadoop YARN –Hadoop 2 中的 resource manager(资源管理器)。

  • Kubernetes (experimental) – 除了上述之外,还有 Kubernetes 的实验支持。 Kubernetes 提供以容器为中心的基础设施的开源平台。

监控

每个 driver 都有一个 Web UI,通常在端口 4040 上,可以显示有关正在运行的 task,executor,和存储使用情况的信息。

Job 调度

Spark 即可以在应用间(Cluster Manager 级别),也可以在应用内(如果多个计算发生在相同的 SparkContext 上时)控制资源分配。


Submitting Applications

在Spark的bin目录下spark submit脚本用于在集群上启动应用程序。

打包应用依赖

如果您的代码依赖了其它的项目,为了分发代码到 Spark 集群中您将需要将它们和您的应用程序一起打包。在创建 jar 时,列出 Spark 和 Hadoop的依赖为provided。它们不需要被打包,因为在运行时它们已经被 Cluster Manager 提供了。如果您有一个 assembled jar 您就可以调用 bin/spark-submit 脚本来传递您的 jar。

spark-submit 启动应用
./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

一些常用的 options(选项)有 :

  • class: 您的应用程序的入口点(例如。 org.apache.spark.examples.SparkPi)
  • master: 集群的 master URL (例如 spark://23.195.26.187:7077)
  • deploy-mode: 是在 worker 节点(cluster) 上还是在本地作为一个外部的客户端(client) 部署您的 driver(默认: client) †
  • conf: 按照 key=value 格式任意的 Spark 配置属性。对于包含空格的 value(值)使用引号包 “key=value” 起来。
  • application-jar: 包括您的应用以及所有依赖的一个打包的 Jar 的路径。该 URL 在您的集群上必须是全局可见的,例如,一个 hdfs:// path 或者一个 file:// 在所有节点是可见的。
  • application-arguments: 传递到您的 main class 的 main 方法的参数,如果有的话。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值