怀疑与Spark资源使用有关

时间:2017-06-28 19:15:53

标签: apache-spark spark-streaming rdd

我正在执行Spark Streaming应用程序,我正在缓存rdds进行历史回顾,我的批处理持续时间为1分钟,平均处理时间为14秒,因此执行程序不计算整个批处理持续时间。执行者也是如此,因为我正在缓存内存中的rdds。如果遗嘱执行人被搁置,我们应该认为这种执行人员的占用会浪费资源。

1 个答案:

答案 0 :(得分:0)

这取决于你想要达到的目标。

在Spark 2.0中,动态分配启用Spark Streaming,没有错误。

问题是,如果您有大量的数据工作量,如果您没有为数据接收保留至少一个执行程序,则可能会丢失数据。现在,这可以通过Spark 2.0解决,并且数据的发布正在发挥作用。

当大量数据出现时,将数据保留在缓存中有什么好处?您可以在没有随机播放的情况下处理数据,这会增加您的响应时间。

但是,如果你有一个1分钟的过程。平均只需14秒即可处理您的数据。我建议你发布你的数据并释放你的工作人员以开放其他任务。

如果您的任务资源不足,任务将排队,并在您拥有资源后立即处理。

风险是什么?如果您发布了工作人员,如果您的纱线中没有preemption,则可能很难获得资源。这可能会浪费您的群集资源。

我要做的是:创建一些可以处理工作的队列。设置高优先级队列,在那里设置流,其他队列中的其他作业,然后打开动态分配并释放缓存。如果您的应用程序需要具有更多资源的东西,Yarn将处理它。