H20 Sparkling中的节点是否可抢占?

时间:2017-11-09 11:45:27

标签: h2o sparkling-water

我在 36个Spark执行器上运行Sparkling water。 由于Yarn的调度,一些执行者会先抢先回来。 总体而言,大多数时间都有 36位执行者,但并非总是如此。

到目前为止,我的经验是,只要 1执行程序失败,整个H2o实例就会停止,即使丢失的执行程序稍后会恢复生命。 我想知道这是Sparkling-water的行为方式吗?或者需要启用一些先发制人能力?

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

[总结]

您所看到的是Sparkling Water的表现。

[详情......]

YARN上的苏打水可以以两种不同的方式运行:

  • 默认方式,其中H2O节点嵌入在Spark执行程序中,并且有一个(Spark)YARN作业,

  • 外部H2O集群方式,其中Spark集群和H2O集群是单独的YARN作业(在此模式下运行需要更多设置;如果以这种方式运行,您就会知道它)

    < / LI>

H2O节点不支持弹性云形成行为。也就是说,一旦形成H2O集群,新节点可能不会加入集群(它们被拒绝),现有节点可能不会离开集群(集群变得无法使用)。

因此,必须为运行H2O节点的队列禁用YARN抢占。在默认情况下,这意味着整个Spark作业必须在禁用YARN抢占的情况下运行(并禁用Spark dynamicAllocation)。对于外部H2O集群方式,这意味着H2O集群必须在禁用抢占的YARN队列中运行。

其他可能有用的信息:

  • 如果您刚开始使用Sparkling Water(或一般H2O)的新问题,请选择少量大内存节点到大量小内存节点;这样可以减少出错的事情,

  • 更具体地说,如果您尝试使用36个执行程序运行,每个执行程序都有1 GB的执行程序内存,那么这是一个非常糟糕的配置;从4个执行器开始x 10 GB,

  • 一般情况下,您根本不想使用小于5 GB的执行程序启动Sparkling Water,并且内存越多越好,

  • 如果以默认方式运行,请不要将执行程序核心数设置得太小;机器学习对于大量的CPU来说都很渴望。