在批处理队列群集上部署mongodb,持久数据,但主机名将更改每个后续作业

时间:2019-02-18 20:07:47

标签: mongodb cluster-computing

我正在尝试在HPC群集上运行分片的MongoDB群集,该作业通过批处理作业队列和跨所有计算节点的共享文件系统提交。每次提交作业时,都无法保证代码将在哪些主机上运行。

我正在大型并行超级计算机上运行数据分析。通过将其数据托管在可查询的数据库(如mongodb)(即分布式数据存储)中,分析将受益匪浅。我想使用分配的计算节点的一部分来运行共享的mongodb集群,而其余部分来运行分析。

此过程将至少有2个批处理作业。

1)在分配的计算节点的子集上运行mongo config服务,分片和路由器。然后,运行摄取脚本以在其余计算节点上同时加载数据。完成此作业后,它将终止所有mongo守护程序,并将计算资源释放回系统。

2)请求另一个作业以在分配的计算节点的子集上运行mongo config,shard和路由器。然后,在其余的计算节点上,分析代码将同时运行,查询邻接的Mongodb集群。

希望我只需要运行1)次,然后我就可以运行2)进行我梦dream以求的疯狂分析。

目前,我有1个)运行良好。但是,主机名保存在rs.conf()中。对于2),当我尝试在后续工作中重新启动集群时,会得到很多

2019-02-18T13:32:38.946-0600 I NETWORK  [Balancer] Cannot reach any nodes for set monitoringMetricsShard3. Ple
ase check network connectivity and the status of the set. This has happened for 10 checks in a row.
2019-02-18T13:32:39.457-0600 W NETWORK  [Balancer] Unable to reach primary for set monitoringMetricsShard3
2019-02-18T13:32:39.457-0600 I NETWORK  [Balancer] Cannot reach any nodes for set monitoringMetricsShard3. Ple
ase check network connectivity and the status of the set. This has happened for 11 checks in a row.
2019-02-18T13:32:39.968-0600 W NETWORK  [Balancer] Unable to reach primary for set monitoringMetricsShard3
2019-02-18T13:32:40.480-0600 W NETWORK  [Balancer] Unable to reach primary for set monitoringMetricsShard3

我发现了这个, MongoDB Replica Set Member State is "OTHER" 这有助于修复配置服务器。但是我只能将mongo shell放入配置服务器和mongos路由器中。蒙戈炮击进入碎片被拒绝。

TL; DR我想将mongodb群集的共享数据永久保存在文件系统中,但是这些守护程序将在不同的主机上例行重启。

1 个答案:

答案 0 :(得分:0)

答案是RTFM。

MongoDB具有用于还原分片群集的SOP,

https://docs.mongodb.com/manual/tutorial/restore-sharded-cluster/

关于本文档的困惑之处在于,它讨论了很多有关在关闭集群之前备份正在运行的集群的信息。一节“其他备份方法”描述了简单地将基础文件复制到新主机。之后,本指南准确地描述了如何重新配置​​副本集和分片以接受新集群的新主机名。