使用Ignite on YARN确保本地缓存

时间:2016-02-08 15:45:09

标签: apache-flink ignite flink-streaming

我有一个用Flink& amp;写的流处理应用程序。我想使用状态后端的内部键值存储来计算流聚合。因为我正在处理大量聚合,所以我想避免在Flink应用程序中将它们保存在堆内,就像当前提供的内存支持和文件支持的实现一样。相反,我想在Apache Ignite中维护状态的缓存,而后者又可以使用直写和放大器。通读功能可在HBase中提供更可靠的备份。

理想情况下,我会在每个物理节点上有一个本地Ignite缓存,用于处理该节点上所有长时间运行的Flink运算符的状态。例如。每个节点在8 GB容器中都有一个Ignite节点,无论它是运行1个还是10个Flink运算符。

问题是我希望Flink和Ignite都能在YARN上运行。通过一致的分区,我可以确保一般数据被发送到正确的缓存,并且在出现故障等情况下,可以从HBase重新填充。我面临的问题是,Ignite似乎是随机地从YARN请求容器,这意味着我无法保证实际上有可用的本地缓存,即使我将Ignite节点的数量设置为与物理量完全相同节点

有关如何为每个物理节点设置一个Ignite节点的任何建议吗?

1 个答案:

答案 0 :(得分:0)

创建了一个使用YARN增强资源分配的票证:https://issues.apache.org/jira/browse/IGNITE-3214。社区中的某个人会把它搞砸并修复。