centos

MongoDB分片集群在CentOS如何搭建

小樊
44
2025-06-28 11:32:41
栏目: 云计算

搭建MongoDB分片集群在CentOS上涉及多个步骤,包括配置服务器、配置分片、配置副本集等。以下是一个基本的指南:

1. 准备工作

确保你已经安装了MongoDB,并且每个节点上都安装了相同版本的MongoDB。

2. 配置服务器

每个节点都需要配置为MongoDB实例。编辑每个节点的/etc/mongod.conf文件。

示例配置(node1):

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1,<节点IP>

sharding:
  clusterRole: shardsvr

示例配置(node2):

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27018
  bindIp: 127.0.0.1,<节点IP>

示例配置(node3):

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27019
  bindIp: 127.0.0.1,<节点IP>

3. 启动MongoDB实例

在每个节点上启动MongoDB实例。

sudo systemctl start mongod
sudo systemctl enable mongod

4. 配置副本集

每个分片节点需要配置为副本集。假设我们有两个副本集,每个副本集有两个节点。

配置副本集1(node1, node2):

mongo --port 27017
rs.initiate(
  {
    _id: "shard1",
    members: [
      { _id: 0, host: "node1:27017" },
      { _id: 1, host: "node2:27017" }
    ]
  }
)

配置副本集2(node3, node4):

mongo --port 27018
rs.initiate(
  {
    _id: "shard2",
    members: [
      { _id: 0, host: "node3:27018" },
      { _id: 1, host: "node4:27018" }
    ]
  }
)

5. 配置配置服务器

配置服务器存储集群的元数据。假设我们使用三个配置服务器。

配置服务器1(config1):

mongod --configsvr --replSet configReplSet --dbpath /var/lib/mongo --port 27019 --bind_ip localhost,<节点IP>

配置服务器2(config2):

mongod --configsvr --replSet configReplSet --dbpath /var/lib/mongo --port 27020 --bind_ip localhost,<节点IP>

配置服务器3(config3):

mongod --configsvr --replSet configReplSet --dbpath /var/lib/mongo --port 27021 --bind_ip localhost,<节点IP>

初始化配置服务器副本集:

mongo --port 27019
rs.initiate(
  {
    _id: "configReplSet",
    configsvr: true,
    members: [
      { _id: 0, host: "config1:27019" },
      { _id: 1, host: "config2:27020" },
      { _id: 2, host: "config3:27021" }
    ]
  }
)

6. 启动mongos路由器

mongos是MongoDB的分片路由器,负责将请求路由到正确的分片。

mongos --configdb configReplSet/config1:27019,config2:27020,config3:27021 --port 27017 --bind_ip localhost,<节点IP>

7. 添加分片

连接到mongos并添加分片。

mongo --port 27017
sh.addShard("shard1/node1:27017,node2:27017")
sh.addShard("shard2/node3:27018,node4:27018")

8. 启用数据库和集合的分片

启用数据库和集合的分片。

sh.enableSharding("yourDatabase")
sh.shardCollection("yourDatabase.yourCollection", { "shardKey": 1 })

9. 验证配置

验证分片集群是否正常工作。

sh.status()

以上步骤提供了一个基本的MongoDB分片集群搭建指南。根据实际需求,可能需要进一步调整和优化配置。

0
看了该问题的人还看了