火花流中的JavaMapWithStateDStream中的键数

时间:2016-12-20 15:26:33

标签: apache-spark spark-streaming

这里我发现了一个很好的证明,即mapWithState可以处理10x这么多的密钥,因为updateStateByKey函数:https://databricks.com/blog/2016/02/01/faster-stateful-stream-processing-in-apache-spark-streaming.html 我的问题是:JavaMapWithStateDStream中的键数是否存在硬限制?有没有任何表现结果? doese它的规模很好吗?我想知道是否有可能有效地管理mapWithState中超过100米的密钥以及我需要的环境。

1 个答案:

答案 0 :(得分:0)

由于我们在互联网上没有找到任何性能基准,我们对自己进行了一些压力测试。 我们的算法需要一组不断增加的密钥,并且密钥数量没有上限。不幸的是我无法发布代码。 在使用10米键时,一切都很好,但是当键组的数量增加了几倍时它变得很慢。检查点花了很长时间。 我们在集群中的一台,两台和四台机器上测试了我们的解决方案,虽然性能有所提高,但我们从未实现100米的密钥限制。 因此,对于我们的用例似乎不可靠,我们有许多复杂的状态需要管理,我们将管理状态的密钥外包给外部数据库,而不是在我们的应用程序中使用mapWithStates。 压力测试要好得多。至少100米的键限制根本不是问题。 我们仍然会欣赏有关此主题的任何新闻。

相关问题