实验目的
1.了解MongoDB数据库
2.了解MongoDB安装流程
实验原理
MongoDB是10gen公司开发的一款以高性能和可扩展性为特征的开源软件。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。
所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。Nytro MegaRAID技术中的闪存高速缓存算法,能够快速识别数据库内大数据集中的热数据,提供一致的性能改进。
模式自由(schema-free),意味着对于存储在Mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized Document Format)。
实验环境
Linux Ubuntu 20.04
jdk-8u161-linux-x64
mongodb-linux-x86_64-ubuntu2004-5.0.8.tgz
实验内容
在Linux下安装MongoDB数据库
实验步骤
MongoDB的主要特点:
(1)MongoDB提供了一个面向文档存储,操作起来比较简单和容易的非关系型数据库。
(2)你可以在MongoDB记录中设置任何属性的索引来实现更快的排序。
(3)你可以通过本地或者网络创建数据镜像,这使得MongoDB含有更强的扩展性。
(4)如果负载增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其它节点上,这就是所谓的分片。
(5)MongoDB支持丰富的查询表达式,查询指令使用json形式的标记,可轻易查询文档中内嵌的对象和数组。
(6)MongoDB使用update()命令可以实现替换文档(数据)或者一些指定的数据字段。
(7)MongoDB中的Map/Reduce主要是用来对数据进行批量处理和聚合操作,Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传递给Reduce函数进行处理。另外Map函数和Reduce函数是使用JavaScript编写的,所以可以通过db.runCommand和mapreduce命令来执行MapReduce操作。
(8)GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
(9)MongoDB允许在服务端执行脚本,可以用JavaScript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
(10)MongoDB支持各种编程语言:ruby、python、java、c++、php、c#等多种语言并且MongoDB的安装也非常简单。
安装流程:
1.首先,在/data目录下创建mongodb1文件夹。
sudo mkdir -p /data/mongodb1
sudo chown -R devuser.devuser /data
2.切换目录到/data/mongodb1下,使用wget命令,下载MongoDB所需安装包mongodb-linux-x86_64-ubuntu2004-5.0.8.tgz。
cd /data/mongodb1
wget http://10.51.46.104:32600/allfiles/mongodb1/mongodb-linux-x86_64-ubuntu2004-5.0.8.tgz
3.将/data/mongodb1目录下MongoDB的安装包,解压到/apps目录下。
sudo mkdir /apps
sudo chown -R devuser.devuser /apps
tar -zxvf /data/mongodb1/mongodb-linux-x86_64-ubuntu2004-5.0.8.tgz -C /apps/
4.切换到/apps目录下,将解压的mongodb-linux-x86_64-ubuntu2004-5.0.8重命名为mongodb。
cd /apps
sudo mv /apps/mongodb-linux-x86_64-ubuntu2004-5.0.8/ /apps/mongodb
5.修改环境变量,使用vim打开~/.bashrc文件。
vim ~/.bashrc
添加以下内容到~/.bashrc文件中。
#mongodb
export MONGODB_HOME=/apps/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
6.使用source命令,使用户环境变量生效。
source ~/.bashrc
7.切换到/data目录下,创建MongoDB的数据存放目录db。
cd /data
mkdir db
8.切换到/apps/mongodb/bin目录下,启动MongoDB服务。
cd /apps/mongodb/bin
sudo ./mongod --dbpath=/data/db --logpath=/data/db/logs
9.另外开启一个窗口,开启MongoDB数据库。
cd /apps/mongodb/bin
./mongo
10.执行命令,查看当前数据库。
show dbs
11.至此MongoDB数据库安装完成,执行退出命令。
exit
12.在刚才执行mongod --dbpath=/data/db --logpath=/data/db/logs的端口输入Ctrl+c,退出MongoDB服务。
优化:通过上面的MongoDB安装,我们已经将其安装成功并且启动,但是发现启动太过于麻烦,所以需要我们自己给MongoDB定义配置文件,因为MongoDB开发者没有配置样例,所以需要我们自己去创建并且写入内容。
13.首先我们使用vim编辑一个MongoDB的配置文件。
vim /apps/mongodb/bin/mongodb.conf
将以下内容写入到mongodb.conf文件中。
#数据存放目录
dbpath = /data/db
#日志存放目录
logpath = /data/db/logs
#端口
port = 27017
#以守护程序的方式使用,即后台运行
fork = true
#日志输出方式,使用追加的方式写日志
logappend = true
#PID file的完整路径,如果没有设置,则没有PID文件
pidfilepath = /apps/mongodb/mongo.pid
#auth
#auth = true
14.使用如下命令启动MongoDB:
sudo apt-get install numactl
sudo numactl ./mongod -config /apps/mongodb/bin/mongodb.conf
15.接下来可以在任意目录启动MongoDB数据库。
mongo
MongoDB数据库至此就安装完毕了!