大数据处理框架Apache Spark 部署模式和运行模式

大数据
后台-插件-广告管理-内容页头部广告(手机)

Apache Spark 部署模式

 

Spark 部署模式主要有5种:

  • Local模式(单机模式)
  • Standalone模式(使用Spark自带的简单集群管理器)
  • YARN模式(使用YARN作为集群管理器)
  • Mesos模式(使用Mesos作为集群管理器)
  • Kubernetes(在Kubernetes上运行Spark,Running Spark on Kubernetes)

其中,最简单就是单机本地模式(Local模式)- 常用于本地开发测试,本地还分为local单线程和local-cluster多线程。

Standalone模式 - 类似于 MapReduce 1.0所采用的模式,内部实现了容错性和资源管理。

YARN模式和Mesos模式,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce共用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配)。

Apache Spark运行模式

在实际应用中,Spark应用程序的运行模式取决于传递给 SparkContext的MASTER环境变量的值,个别模式还需要依赖辅助的程序接口来配合使用,目前所支持的MASTER环境变量由特定的字符串或URL所组成,如下所示。

Master URL可以是以下任一种形式:

* local 使用一个Worker线程本地化运行SPARK(完全不并行);

* local[*] 使用逻辑CPU个数数量的线程来本地化运行Spark

* local[K] 使用K个Worker线程本地化运行Spark(理想情况下,K应该根据运行机器的CPU核数设定)

* spark://HOST:PORT 连接到指定的Spark standalone master,默认端口是7077。

* yarn-client 以客户端模式连接YARN集群。集群的位置可以在HADOOP_CONF_DIR 环境变量中找到。

* yarn-cluster 以集群模式连接YARN集群。集群的位置可以在HADOOP_CONF_DIR 环境变量中找到。

* mesos://HOST:PORT 连接到指定的Mesos集群。默认接口是5050。

Local模式,顾名思义就是在本地运行,如果不加任何配置,Spark默认设置为Local模式。

以SparkPi为例,Local模式下的应用程序的启动命令如下:

bin/run-example SparkPi local

在SparkPi 代码的具体实现中,是根据用户传入的参数来选择运行模式的。

 

如果需要自己在代码中指定运行模式,可以通过在代码中配置Master为Local来实现,如以下程序所示。

 

当然,为了使应用程序能够更灵活地在各种部署环境下使用,不建议把与运行环境相关的设置直接在代码中写死。

参考链接:

Launching on a Cluster

 

https://spark.apache.org/docs/latest/

后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。