数人之道原创文章,转载请关注本公众号联系我们
MongoDB 是基于分布式文件存储的数据库,由 C++语言编写,专为 WEB 应用提供可扩展性、高性能和高可用性的数据存储解决方案。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB 能够提供高性能的数据读写操作。MongoDB 的本地复制和自动故障转移功能让应用程序具有企业级的可靠性和操作灵活性。
1MangoDB 简介
MongoDB 是一个文档数据库,旨在简化开发和扩展。
1.1文档数据库
MongoDB 中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB 的文档格式是类似于 JSON 对象的 BSON 文档。BSON 是 JSON 文档的二进制表示形式,它包含比 JSON 更多的数据类型,字段的值可以包括其他文档,数组和文档数组。
使用文档的优点是:
集合/视图/按需实例化视图
MongoDB 将文档存储在集合中,集合类似于关系型数据库中的表。
除了集合外,MongoDB 还支持:
1.2主要特性
1.2.1. 高性能
MongoDB 提供高性能的数据持久化。特别是在以下方面:
1.2.2. 丰富的查询语言
MongoDB 支持丰富的查询语言以支持读写操作(CRUD)以及:
1.2.3. 高可用
MongoDB 的复制工具(称为副本集)提供:
副本集是一组维护相同数据集合的 mongod 实例,提供了冗余和提高了数据可用性。
1.2.4. 水平拓展
MongoDB 提供水平可伸缩性作为其核心功能的一部分:
1.2.5. 支持多种存储引擎
MongoDB 支持多个存储引擎:
另外,MongoDB 提供可插拔的存储引擎 API,允许第三方为 MongoDB 开发存储引擎。
2MongoDB 安装
下面介绍如何在 Linux 服务器上安装 MongoDB, 这里使用的操作系统是 CentOS 8.
2.1安装前检查
2.1.1. 安装 Linux 平台依赖包
使用 root 用户执行以下命令安装 openssl,若已安装可忽略此步骤:
yum install libcurl openssl
2.1.2. 检查系统最大可打开文件数
跟 HBase 一样,MongoDB 对 Linux 系统的最大可打开文件数也有要求,自 MongoDB4.4 版本开始,系统最大可打开文件数若在 64000 以下,启动将会报错。
检查及修改方式详见《安装 HBase - HBase 部署配置》第一节:安装前检查。
2.1.3. 关闭 selinux
MongoDB 需要关闭 selinux,selinux 若在 enforcing 模式,则需要安装 checkpolicy,进行较为复杂的配置。
修改 selinux 配置文件/etc/selinux/config
,将 selinux 参数改为disabled
.
2.1.4. 创建用户
创建名为mongod
的用户,用于安装、使用及管理 MongoDB:
useradd mongod
passwd mongod
设置用户 mongod 用户的 sudo 权限,详见《Hadoop环境搭建及安装》的 2.4 节:设置用户及权限。
切换到 mongod 用户进行下面的安装操作。
2.2安装 MongoDB
2.2.1. 配置 yum 文件
创建 yum 文件:
sudo vim /etc/yum.repos.d/mongodb-org-5.0.repo
添加以下内容,以使用 yum 进行 MongoDB 安装:
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
2.2.2. 安装 MongoDB
执行以下命令安装 MongoDB:
sudo yum install -y mongodb-org-5.0.5 mongodb-org-database-5.0.5 mongodb-org-server-5.0.5 mongodb-org-shell-5.0.5 mongodb-org-mongos-5.0.5 mongodb-org-tools-5.0.5
可自行选择需要安装的组件包。
安装完成后查看守护进程服务 mongod 安装位置,确定安装是否成功:
whereis mongod
图2-2-1:查看 mongod 安装位置
可以看到,mongod 相应所在的文件位置。
2.3创建存储目录
默认情况下 MongoDB 启动后会初始化以下两个文件存储目录:
这里我们修改目录路径,配置成自定义的目录:
2.3.1. 创建自定义目录
创建自定义目录存储数据及日志文件:
sudo mkdir -p /opt/data/mongo
sudo mkdir -p /opt/mongo/mongodb/log
touch /opt/mongo/mongodb/log/mongod.log
2.3.2. 为 mongod 用户赋权
设置 mongod 用户对所创建的目录拥有读写权限:
sudo chown -R mongod:mongod /opt/data/mongo/
sudo chown -R mongod:mongod /opt/mongo/
2.3.3. 修改配置文件
修改配置文件/etc/mongod.conf
,配置创建的目录:
图2-3-1:配置 mongod.conf 文件
另外,net.bindIp 参数可以根据需求修改成 0.0.0.0,表示允许所有 IP 地址访问 MongoDB 服务。
2.4启动 MongoDB
2.4.1. 启动 MongoDB
执行以下命令启动 MongoDB:
sudo systemctl start mongod
若启动出现以下错误:
Failed to start mongod.service: Unit mongod.service not found.
执行以下命令后,重新使用启动命令启动 MongoDB:
sudo systemctl daemon-reload
2.4.2. 验证启动情况
执行以下命令验证 MongoDB 启动是否成功:
sudo systemctl status mongod
图2-4-1:验证 MongoDB 启动情况
另外,可以在上面配置的日志/opt/mongo/mongodb/log/mongod.log
中查看启动情况及信息。
2.4.3. 设置随系统启动
执行以下命令可设置 MongoDB 在系统启动的时候自动启动:
sudo systemctl enable mongod
设置后,系统重启即会自动将 MongoDB 的服务启动,无需手动操作。
2.5进入 MongoDB 命令行
MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell,是用来对 MongoDB 进行操作和管理的交互式环境。
使用以下命令可进入 MongoDB Shell 命令行环境:
mongosh
在命令行中使用以下命令可查看目前 MongoDB 中的所有数据库:
show dbs
图2-5-1:进入 MongoDB 命令行环境
进入 MongoDB 命令行后,默认会连接到 test 文档(数据库)。
THE END