繁体   English   中英

在Apache Ignite中将数据从一个节点移动到同一集群中的另一个节点

[英]Moving data from one node to other node in same cluster in Apache Ignite

在一个由8个节点组成的基准集群中,分区模板中的数据没有备份。 假设我在SampleTable(@Cache)的所有8个节点中平均有28K个条目。 总数据= 28K * 8 = 224K条目。

用“ template = partitioned”创建表SampleTable(....)

现在,我想关闭一个节点,然后在关闭之前,我想将数据从第8个节点移至其他节点,因此将大约32K(32K * 7 = 224K)条目移至7个节点。 我可以将数据从任何节点移动到其他节点吗?

在关闭该节点之前,如何将所有数据从一个节点移至其他节点(群集)? 在其余7个节点中保持数据平衡和分布。

我使用create语句创建了表(SampleTable),并使用insert语句(使用JDBC连接)插入了数据。

持久性已启用。

我认为最直接的方法是使用备份。 无论如何,如果您需要避免数据丢失,则必须使用备份(或持久性)。

作为一种简单的解决方法,您可以尝试以下步骤:

  1. 您可以使用ScanQuery扫描要关闭的节点上的本地数据,并将数据存储在数据库中。
  2. 之后,关闭该节点并将其从基线中排除。
  3. 从数据库上传数据。

仅当群集中配置了备份(> 0)时,以下描述的方法才有效。

要从基准拓扑中删除一个节点并在其余7个节点之间重新平衡数据,您可以使用集群激活工具

  1. 停止要从拓扑中删除的节点。

  2. 等待节点停止。 消息Ignite node stopped OK应该出现在日志中。

  3. 检查节点是否脱机:

$IGNITE_HOME/bin/control.sh --baseline

Cluster state: active
Current topology version: 8

Baseline nodes:
ConsistentID=<node1_id>, STATE=ONLINE
ConsistentID=<node2_id>, STATE=ONLINE
...
ConsistentID=<node8_id>, STATE=OFFLINE
--------------------------------------------------------------------------------
Number of baseline nodes: 8

Other nodes not found.
  1. 从基准拓扑中删除节点:

$IGNITE_HOME/bin/control.sh --baseline remove <node8_id>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM