Spark - 在执行期间改变并行性

时间:2017-01-13 21:54:41

标签: java scala apache-spark hbase distributed-computing

我的工作分为两部分:

  • 第一部分使用Spark
  • 从HBase检索数据
  • seoncd部分计算大量CPU密集型ML算法

问题是,由于执行程序/核心数量很多,HBase集群的查询过于强烈,这可能会导致生产不稳定。 由于执行器/核心太少,ML计算需要很长时间才能完成。

由于启动时设置了执行程序和核心的数量,我想知道是否有办法减少作业第一部分的执行程序编号。

我显然希望避免运行两个单独的工作,例如Hadoop会在这两个步骤之间进行强制磁盘序列化。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我猜dynamic allocation就是你要找的。这也可以用于火花流。

我认为您可能需要对RDD大小进行一些调整以平衡数据提取和数据处理,但根据您的实际用例情况,它可能真的具有挑战性。