文章内容输出来源:拉勾教育Java高薪训练营
学习心得
课程介绍
第四阶段 大型分布式存储系统架构进阶
模块三 分布式文档存储独角兽MongoDB、知识图谱存储数据库Neo4j
本模块对MongoDB的存储原理以及replica sets & Sharded Cluster等、对Neo4j数据模型及图形理论等进行深入讲解。
作业内容
(1) 如图搭建一个分片集群 要求每个分片节点中的复制集含有一个仲裁节点
(2) 使用权限控制 建立访问你访问的数据库lg_resume 这个账号名字是lagou_gx 密码是abc321。这个账号对数据库有读写权限
(3) 使用SpringBoot 进行访问分片集群 对lg_resume 库中的lg_resume_datas 进行增加数据
课程目录及观看建议
2倍速模式
- 课程:3小时
- 作业:3小时
***
必看
**
建议看
*
可不看
任务一:分布式文档存储MongoDB)
- MongoDB课程介绍(10:45)
- MongoDB和RDBMS(16:30)
*
- MongoDB安装和启动参数说明(25:50)
***
- MongoShell和GUI工具(16:44)
- MongoDN的基本操作(10:08)
- 插入数据(15:48)
- 数据查询(18:55)
- 更新操作(18:07)
- 删除数据(07:46)
- 聚合介绍(06:32)
- 聚合管道(19:40)
- MapReduce(16:43)
- 索引和单键索引(12:50)
- 索引分类(22:33)
- 索引分类和总结(14:48)
- 索引管理(09:14)
- 执行计划分析(32:45)
- 慢查询分析(12:48)
- MongoDB索引实现原理(13:08)
- 应用场景和如何抉择(11:48)
- Java访问MongoDB(27:58)
- Spring访问MongoDB(29:38)
**
- MongoDBSpring查询(20:57)
**
- SpringBoot以Template方式访问MongoDB(14:17)
**
- MongoRepository访问(19:18)
***
- MongoDB逻辑结构和数据模型(10:48)
- 存储引擎(12:37)
- WireTiger存储引擎原理(17:10)
- 主从和复制集(10:13)
***
- 复制集原理(17:20)
- 复制集搭建(20:52)
***
- 复制集成员参数和仲裁节点(15:38)
***
- 分片和分片的原理(24:25)
***
- 配置集群和分片集群(29:14)
***
- 分片后续步骤(12:22)
***
- 安全认证介绍(11:15)
***
- 单机安全认证(14:48)
*
- 集群安全认证(27:07)
***
任务二:知识图谱存储Neo4j)
略
观后感
可以3倍速播放。
作业说明
作业思路
在虚拟机中搭建MongoDB分片环境,包括配置节点、分片节点、路由节点,并设置读写权限。最后使用Spring Boot项目进行测试。
实现步骤
- 准备虚拟机环境
- 下载MongoDB安装文件
- 安装MongoDB
- 设置全部配置文件
- 设置配置节点信息
- 设置分片节点信息
- 设置路由节点信息
- 设置权限
- 编写Spring Boot项目进行测试
注意事项
- 虚拟机空间不足
因为MongoDB集群实例比较多,创建虚拟机时注意需要至少10G磁盘空间,否则需要后期扩容。
先在虚拟机中添加一块8G物理的磁盘,重起虚拟机,然后执行以下shell命令。
# 查看磁盘编号
$ ls /dev/sd*
# 创建pv
$ pvcreate /dev/sdb
# 使用vgextend命令扩展vg(如果提示 Could not create temporary archive name,则需要先删除logs文件腾出一些空间)
$ vgextend centos /dev/sdb
$ lvs
# 可用容量小于8G
$ lvextend -L +7.9G /dev/mapper/centos-root
# 命令使系统重新读取大小
$ xfs_growfs /dev/mapper/centos-root
# 查看磁盘信息(成功扩容为16G)
$ df -h
- 关闭服务尽量不使用kill
使用kill命令可能会导致MongoDB实例损坏,需要手动删除 data/mongod.lock
然后以修复方式启动
$ /usr/bin/mongod -f /etc/mongod.conf --repair
正常关闭服务的方式(好像killall命令也可以)
> db.shutdownServer();
- 批量清除数据
如果MongoDB实例或数据损坏,需要批量删除,可以使用以下sh。但是重新启动后需要再次进行相关设置。
rm -rf data/config_17011/*
rm -rf data/config_17013/*
rm -rf data/config_17015/*
rm -rf data/shard1_37011/*
rm -rf data/shard1_37013/*
rm -rf data/shard1_37015/*
rm -rf data/shard1_37017/*
rm -rf data/shard2_47011/*
rm -rf data/shard2_47013/*
rm -rf data/shard2_47015/*
rm -rf data/shard2_47017/*
rm -rf data/shard3_57011/*
rm -rf data/shard3_57013/*
rm -rf data/shard3_57015/*
rm -rf data/shard3_57017/*
rm -rf data/shard4_58011/*
rm -rf data/shard4_58013/*
rm -rf data/shard4_58015/*
rm -rf data/shard4_58017/*
rm -rf data/route_27017/*
- 权限问题
a. 权限相关的配置最好第一次就填写好,避免很多配置文件写完再重新修改。
b. 目前发现设置完权限后,分片节点权限认证不成功,无法使用shell进行数据查询,只能通过路由节点授权查询。正在解决中。