文章内容输出来源:拉勾教育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进行数据查询,只能通过路由节点授权查询。正在解决中。