如何通过MarkLogic群集加载和管理数据

问题描述 投票:1回答:1

我想询问数据如何加载到这个集群中,我是否手动将数据分别加载到每个节点?或者marklogic是否能够在集群本身之间管理和传输数据,所以我需要做的就是将数据加载到单个节点中?

对于marklogic来理解和平衡某些森林/数据库之间的数据是否有一定的要求?如需要森林和数据库共享同名或XDBC服务器共享相同的端口号?最后,我想问一下,是否有办法增加数据提取吞吐量?我试图通过一次将数据泵入所有3个节点来实现这一点,但这导致其他两个节点出错。所以我回到使用单个节点来输入数据,它当前正在运行它所使用的CPU的100%。

问题来自这里的评论:Clustering of nodes (MarkLogic)

marklogic marklogic-9
1个回答
2
投票

数据库将数据存储在林中,数据将分布在森林所在的位置。因此,如果两台主机上都有一个带有林的数据库,它将自动平衡两台主机之间的数据。您可以更改数据库如何确定使用分配策略放置在哪个林上的数据,该策略默认为存储桶

重新平衡没有一定的要求。应用程序服务器和林分配给特定数据库,因此它们已经链接。

因此,摄取到应用服务器的数据将被写入指定的数据库。然后,该数据库将确定将数据放在哪些林中。这有时可能导致一个集群主机上的林变得比另一个集群主机上的林大,此时数据库将决定将一些数据重新分配给分配给同一数据库的其他林,这些林可能也可能不在同一个数据库中主办。

有许多方法可以提高摄取吞吐量,但最常见的是:

  • 增加主机的受限资源。这意味着如果您受CPU限制,请添加内核;如果你受内存限制,添加内存;等等
  • 增加涉及的主机数量。通过负载平衡或多个摄取管道。

由于您使用的是MLCP,因此它将检索群集中的林主机列表,并且默认情况下它将在群集中分配工作。有一些选择,请参阅here

要查看工作是否正在分发,您可以在管理界面中进行检查:配置 - >组 - >默认 - >应用服务器 - > [您的提取应用服务器],单击状态选项卡,然后显示更多按钮。它应列出所有主机以及群集中每个主机所服务的请求数。如果一个主机数量明显高于其他主机,那么工作可能无法正确分发。

一旦数据被摄取,它将在森林中得到平衡。它的文档数量或使用的空间不会完全相同。服务器将决定森林何时太小或太大,并相应地移动文档。重新平衡可能是资源密集型的,因此服务器会尝试权衡将数据保留到位而不是将其移动到另一个林的成本。

如果您主要摄入单个节点,您可能还会在该节点上看到更大的林,由于上述原因,服务器会权衡移动数据与保留数据的成本。

索引也会影响磁盘上的大小,特别是当文档大小各种各样时,由于文档类型的原因,某些林可能会导致索引比其他索引更大。

还有许多其他因素会影响每个节点使用的间隔。一个是删除的片段数量;这些是已标记为删除但尚未从林中合并的片段。如果林正在看到大量的摄取活动,或者合并优先级降低,则可能会导致某些森林比其他森林大得多,直到它有机会合并掉已删除的片段。

你提到你试图摄入所有三个节点,但它没有用。在不知道您是如何摄取数据以及您遇到的确切错误的情况下,很难说它为什么不适合您,但这通常是MarkLogic的使用方式。

MarkLogic提供许多免费课程,包括按需和讲师指导。我建议花几个小时服用MarkLogic Fundamentals。查看mlu.marklogic.com以获取其他课程列表。您还可以查看MarkLogic Concepts Guide,它可以很好地概述MarkLogic的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.