1

我有一个用 Flink 编写的流处理应用程序,我想使用来自状态后端的内部键值存储来计算流聚合。因为我要处理很多聚合,所以我想避免像当前提供的内存支持和文件支持的实现那样在 Flink 应用程序中将它们维护在堆上。相反,我想在 Apache Ignite 中维护状态缓存,这反过来可以使用直写和直读功能在 HBase 中提供更可靠的备份。

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

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

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

4

1 回答 1

0

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

于 2016-05-30T14:47:15.180 回答