首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于两个不同的Nifi集群,我可以使用相同的flow.xml.gz吗?

对于两个不同的Nifi集群,我可以使用相同的flow.xml.gz吗?
EN

Stack Overflow用户
提问于 2021-07-22 18:08:17
回答 1查看 628关注 0票数 0

我们有一个13节点的nifi集群,拥有大约50k的处理器。flow.xml.gz的大小约为300 is。要建立13个节点的Nifi集群,通常需要8-10小时。最近,我们将集群分为两个部分,5节点集群和8节点集群,它们都具有相同的300 in flow.xml.gz。从那以后,我们无法在这两个星系团中得到Nifi。此外,我们没有看到任何与此问题有关的有效日志。有同样的flow.xml.gz可以吗?在拆分Nifi集群时,我们可能缺少哪些最佳实践。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-25 08:39:26

您提出了许多问题,这些问题归结为“如何使用非常大的NiFi提高我们的flow.xml.gz集群的性能”。如果没有更多关于集群及其流的详细信息,我无法给出一个明确的或保证工作的答案,但我可以指出其中的一些步骤。

如果不分割流,拆分集群是没有好处的。

是的,您将在一定程度上减少集群通信开销,但您可能有许多输入处理器被设置为“仅限主节点”。如果您在两个集群上加载相同的flow.xml.gz,两个集群都将有一个主节点执行这些内容,从而导致争用问题。

更重要的是,由于每个节点仍然加载所有的flow.xml.gz (可能是4GB的解压缩),您没有任何其他的性能优势,在启动时验证流程中的50k处理器还需要很长时间。

如何拆分集群

按照您所做的方式拆分集群,可能会留下对其他集群中节点的引用,例如在本地状态目录中。对于NiFi集群,这可能会导致选择新的集群协调器和主节点出现问题,因为无法达到仲裁。

如果先从集群GUI中断开、卸载和删除这些节点,以便删除这些引用,这将更加清晰。然后,可以将这些节点配置为具有空流的新集群。即使您稍后再次使用旧流,也可以使用空流测试它,以使其更快。

由于您已经拆分了集群,我将尝试启动8成员集群中的一个节点,并查看是否可以访问群集菜单来删除分离的节点(断开连接和卸载可能不再有效)。然后,对于集群的其他7个成员,删除flow.xml.gz并启动它们。它们应该从正在运行的节点复制流。您应该调整nifi.properties (nifi.cluster.flow.election.max.candidates)中所期望的候选数量,使其不大于节点数,以略微加快此过程。

如果成功,则在8成员集群上运行300 MB流,在新5成员集群上运行空流。将新集群连接到开发管道(NiFi注册表、模板或其他)。然后,您可以在8个成员集群上停止进程组,在新集群上导入它们,并在验证流程在新集群上运行之后,从旧的进程组中删除流程组,缓慢地缩小它。

如果您没有管道,或者需要重新创建所有控制器和参数上下文,那么您可以将flow.xml.gz复制到一个新节点,只启动该节点并删除不需要的所有内容。只有在此之后,您才能再次启动其他(使用空的flow.xml.gz)。

要获得更多专家建议,您还应该尝试使用Apache NiFi用户电子邮件列表。如果你在你的问题中提供了足够的相关细节,那里的人可能知道你的集群出了什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68489662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档