0

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

我需要运行 2 个 spark 流作业,并留出一些内存和 CPU 资源用于偶尔测试批处理作业。

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

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

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

3) 是否有一种方法可以使这项工作,设置应用程序可以在配置文件中使用的内存,或者当我创建火花上下文时?

谢谢

4

1 回答 1

0

每个工人可以运行多少个执行器?我知道默认值是 1,但是更改它是否有意义?

只有在您有足够资源的情况下才有意义。比如说,在一台 24 GB 和 12 核的机器上,如果您确定 8 GB 足够一个执行程序,则可以运行 3 个执行程序。

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

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

是否有一种方法可以使这项工作,设置应用程序可以在配置文件中使用的内存,或者当我创建火花上下文时?

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

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