Ubuntu搭建MongoDB集群
2017-12-18 22:26
676 查看
MongoDB是一个基于分布式文件存储的数据库,是介于关系数据库和非关系数据库之间的数据库,属于非关系数据库,非常适合爬虫爬取大量数据时进行存储。
MongoDB集群旨在提高系统的稳定性,使用多个MongoDB存储节点,当主节点挂掉之后从节点可以立即补充进来保证系统可以正常稳定地运行。
在Kali Linux中是默认安装了MongoDB的,位于/etc/init.d/目录。
这里只在Ubuntu 16.04上进行操作。
为MongoDB创建软件源list文件:echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
更新软件源并安装MongoDB:
sudo apt-get update
sudo apt-get install -y mongodb-org
开启MongoDB:service mongod start
查看端口是否正常开启:
以MongoDB的默认端口27017作为主节点,27018和27019作为从节点,并且在主机上建立三个不同的文件夹作为数据库存储,注意每个文件夹里面都要从创建一个空的data文件夹。
下面开启三个命令行窗口来启动三个不同的MongoDB服务:
mongod --dbpath ~/mongodb-test/mongodb_main/data --replSet repset
mongod --dbpath ~/mongodb-test/mongodb_slave1/data --port 27018 --replSet repset
mongod --dbpath ~/mongodb-test/mongodb_slave2/data --port 27019 --replSet repset
三个服务启动成功,然后需要初始化副本集,随机登录一个服务,另起一个命令行输入mongo,然后输入:
接着输入rs.status()来查看节点信息:
看到如上配置即设置成功。
接下来测试主从节点是否会自动同步,输入:
这时终止对主节点的连接,用mongo 127.0.0.1:27018登录从节点,查看数据是否同步:
发生了错误,原因是MongoDB默认是从主节点读写数据的而从节点上不允许读,需要设置从节点的读权限:
可以看到数据已经同步到从节点了。
最后再测试下故障发生时主从节点能否完成切换,这里直接强制关闭主节点(直接在该命令行control C即可)来测试查看:
完成了正常的切换,没有问题。
运行结果:
MongoDB集群旨在提高系统的稳定性,使用多个MongoDB存储节点,当主节点挂掉之后从节点可以立即补充进来保证系统可以正常稳定地运行。
在Kali Linux中是默认安装了MongoDB的,位于/etc/init.d/目录。
这里只在Ubuntu 16.04上进行操作。
Ubuntu安装MongoDB:
导入软件源的公钥:sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927为MongoDB创建软件源list文件:echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
更新软件源并安装MongoDB:
sudo apt-get update
sudo apt-get install -y mongodb-org
开启MongoDB:service mongod start
查看端口是否正常开启:
Ubuntu搭建MongoDB群集:
这里直接采取一台主机开放三个不同端口来模拟实现三台主机的效果,先关闭MongoDB服务service mongod stop。以MongoDB的默认端口27017作为主节点,27018和27019作为从节点,并且在主机上建立三个不同的文件夹作为数据库存储,注意每个文件夹里面都要从创建一个空的data文件夹。
下面开启三个命令行窗口来启动三个不同的MongoDB服务:
mongod --dbpath ~/mongodb-test/mongodb_main/data --replSet repset
mongod --dbpath ~/mongodb-test/mongodb_slave1/data --port 27018 --replSet repset
mongod --dbpath ~/mongodb-test/mongodb_slave2/data --port 27019 --replSet repset
三个服务启动成功,然后需要初始化副本集,随机登录一个服务,另起一个命令行输入mongo,然后输入:
接着输入rs.status()来查看节点信息:
看到如上配置即设置成功。
接下来测试主从节点是否会自动同步,输入:
这时终止对主节点的连接,用mongo 127.0.0.1:27018登录从节点,查看数据是否同步:
发生了错误,原因是MongoDB默认是从主节点读写数据的而从节点上不允许读,需要设置从节点的读权限:
可以看到数据已经同步到从节点了。
最后再测试下故障发生时主从节点能否完成切换,这里直接强制关闭主节点(直接在该命令行control C即可)来测试查看:
完成了正常的切换,没有问题。
使用Python访问MongoDB副本集:
主要使用Python的pymongo库,需要安装:pip install pymongo#coding=utf-8 from pymongo import MongoClient client =MongoClient("mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019", replicaset='repset') print client.test.testdb.find_one()
运行结果:
相关文章推荐
- Ubuntu下Mongodb集群搭建:relica sets(副本集配置)
- 【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(三)
- Ubuntu16.04 下 Spark2.0.2+Hadoop2.7.3+Zookeeper3.4.9+HBase1.1.7集群环境搭建
- MongoDB3.2 集群搭建
- MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
- 搭建高可用mongodb集群(二)—— 副本集
- Ubuntu下搭建spark集群开发环境
- Mongodb集群搭建的三种方式
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
- ubuntu下mysql-gluster集群搭建
- MongoDB学习2_Mongodb集群搭建的三种方式
- 搭建高可用mongodb集群(一)——配置mongodb
- MongoDB分片集群搭建
- MongoDB 集群搭建(主从复制、副本及)(五)
- 搭建mongodb热备集群 和 c#驱动
- mongodb 集群搭建 分片+副本集
- 快速搭建MongoDB分片集群
- mongodb集群搭建(Linux Centos6.4版本)
- Mongodb集群搭建配置