Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MarkLogic群集如何加载和管理数据_Marklogic_Marklogic 9 - Fatal编程技术网

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

MarkLogic群集如何加载和管理数据,marklogic,marklogic-9,Marklogic,Marklogic 9,我想询问如何将数据加载到此集群中,我是否手动将数据分别加载到每个节点中?或者marklogic能够在集群本身之间管理和传输数据,所以我需要做的就是将数据加载到单个节点中 对于marklogic了解和平衡特定林/数据库之间的数据,是否有特定要求?例如,林和数据库需要共享相同的名称,或者XDBC服务器需要共享相同的端口号?最后,我想问,是否有办法提高数据摄取吞吐量?我试图通过一次将数据注入所有3个节点来实现这一点,但这导致了另外两个节点上的错误。所以我回到了使用单个节点来输入数据,它目前以100%的

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

对于marklogic了解和平衡特定林/数据库之间的数据,是否有特定要求?例如,林和数据库需要共享相同的名称,或者XDBC服务器需要共享相同的端口号?最后,我想问,是否有办法提高数据摄取吞吐量?我试图通过一次将数据注入所有3个节点来实现这一点,但这导致了另外两个节点上的错误。所以我回到了使用单个节点来输入数据,它目前以100%的CPU使用率运行

从这里的评论中引出的问题:

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

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

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

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

  • 增加主机的受约束资源。这意味着,如果您受到CPU限制,请添加内核;如果内存有限,请添加内存;等等
  • 增加涉及的主机数量。通过负载平衡或多个接收管道
由于您使用的是MLCP,它将检索集群中的林主机列表,并且默认情况下,它将在集群中分发工作。有一些选项,请参见

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

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

如果您主要将数据摄取到单个节点中,那么您可能还会在该节点上看到更大的林,原因如上所述,即服务器会权衡移动数据与保留数据的成本

索引还将影响磁盘上的大小,特别是当文档大小多种多样时,由于文档类型的不同,某些林可能最终会拥有比其他林更大的索引

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

您提到,您试图将其吸收到所有三个节点中,但都不起作用。如果不知道您是如何接收数据的,以及您遇到的确切错误,很难说为什么它不适合您,但MarkLogic通常就是这样使用的


MarkLogic提供许多免费课程,包括按需课程和讲师指导课程。我建议花几个小时的时间。查看其他课程的列表。您还可以查看,它很好地概述了MarkLogic的工作原理。

如果您正在投票,请发表评论。该问题引用了链接问题中的详细信息。@Micheal Gardner,感谢您的回答,我想澄清提高吞吐量的第二种方法“增加所涉及的主机数量”,为此,我只需添加更多的林并将它们分配给不同的“主机”,假设forest1、forest2、forest3链接到主机1、主机2,分别是3号。从这里,我将这些林添加到单个数据库中,并运行MLCP来摄取数据。这样,它通过涉及更多主机来提高吞吐量。我希望这是让更多主持人参与进来的正确方式?对于“受限资源”,我应该更改什么类型的资源以提高吞吐量?@WhiteSolstice-是的,您将希望在主机之间分布您的林,这对后端很有帮助。我还扩展了答案,以涵盖您的其他问题。@Micheal Gardner,很抱歉再次重复此问题,但我一直在使用一些设置,通常我的一些节点/VM比另一个节点占用更多空间,尽管它们应该同样平衡。这是由于索引的创建以及它们在节点/虚拟机之间的分布方式造成的吗?另一个相当明显的提高摄取速度的方法是每个主机使用多个林。MarkLogic将能够以这种方式并行处理和写入数据,从而更多地利用主机上的CPU内核和IO带宽。这可能取决于究竟是什么持有美国银行