Spark资源调度 - 独立集群管理器

时间:2016-05-03 08:53:17

标签: apache-spark apache-spark-standalone

我在Spark中开发的数据管道配置测试机器非常少。我将只使用一个AWS t2.large实例,它只有2个CPU和8 GB RAM。

我需要运行2个火花流工作,并留下一些内存和CPU电源,以便偶尔测试批处理作业。

所以我有一个主人和一个工人,他们在同一台机器上。

我有一些一般性问题: 1)每个工人可以运行多少个执行者?我知道默认是一个,但改变它是否有意义?

2)一个执行程序可以执行多个应用程序,还是一个执行程序只能用于一个应用程序?

3)是一种使这项工作成功的方法,设置应用程序可以在配置文件中使用的内存,还是在创建spark上下文时?

谢谢

1 个答案:

答案 0 :(得分:0)

  

每个工作人员可以运行多少个执行程序?我知道默认是一个,但改变它是否有意义?

只有在你有足够资源的情况下才有意义。比方说,如果你确定8 GB对于一个执行者来说足够了,那么在一台24 GB和12核的机器上就可以运行3个执行器。

  

一个执行程序可以执行多个应用程序,还是一个执行程序只能用于一个应用程序?

不,每个应用程序都会启动自己的执行程序。

  

是一种使这项工作成功的方法,设置应用程序可以在配置文件中使用的内存,还是在创建spark上下文时?

我不确定我是否理解这个问题,但有三种方法可以为应用程序提供配置

  • 文件spark-defaults.conf,但在创建新的SparkConf实例时,不要忘记打开以读取默认属性。
  • 在运行应用程序时通过-D提供系统属性,或者如果是spark-submit或spark-shell则提供--conf。虽然对于内存选项,但有一些特定的参数,如spark.executor.memory或spark.driver.memory以及其他要使用的参数。
  • 使用其set方法通过新的SparkConf实例提供相同的选项。