同步操作将从 儒猿中间件/自研分布式小文件存储系统 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本仓库存放的是儒猿架构《石杉架构课》的 自研中间件实战云平台项目之一,版权归儒猿技术窝所有,侵权将追究法律责任
架构课程详细信息
更多技术干货,请扫描下方二维码,关注公众号儒猿技术窝
定位: 小文件存储: 几KB~几百MB之间的文件存储。
由于源码使用了protobuf作为序列化框架,所以下载代码之后需要执行以下命令,生成protobuf序列化文件
cd ruyuan-dfs/ruyuan-dfs-common
mvn protobuf:compile && mvn install
温馨提示:如果你的电脑是Apple M1芯片的,Protobuf编译可能会报错,这个问题可以通过配置指定使用x86架构解决,具体方式如下:
<properties>
<os.detected.classifier>osx-x86_64</os.detected.classifier>
</properties>
<profile>
<id>apple-silicon</id>
<properties>
<os.detected.classifier>osx-x86_64</os.detected.classifier>
</properties>
</profile>
<activeProfiles>
<activeProfile>default</activeProfile>
<activeProfile>apple-silicon</activeProfile>
...你其他的profile
</activeProfiles>
打开配置NameNode的配置文件,在项目根目录下conf目录存在一个namenode.properties文件,打开此文件,修改以下内容:
base.dir=/srv/ruyuan-dfs/namenode # 修改为你本机的一个路径
启动类为ruyuan-dfs-namenode模块下的类:com.ruyuan.dfs.namenode.NameNode。我们可以运行他的main方法, 但是通常第一次运行是不成功的,会提示异常。
我们需要对启动程序进行一些配置,点击IDEA右上角运行按钮左边的下拉框。 选择 Edit Configurations...,在弹出框中,我们需要配置几个参数:
主要看下面两个红框,需要配置一个JVM参数-Dlogback.configurationFile=conf/logback-namenode.xml 用于指定Logback的配置文件, 接着添加一个Program arguments为 conf/namenode.properties 用于指定NameNode的配置文件,接着就可以运行起来了。
BackupNode机器已经和NameNode集成在同一个module中了,启动类为com.ruyuan.dfs.backup.BackupNode 同样的,BackupNode也需要修改配置文件和启动参数:
同样需要修改base.dir属性为你本机的一个路径,其他属性不变即可。启动参数配置如下:
修改conf/datanode.properties文件中的base.dir参数值为你本机电脑的一个路径
另外需要注意的是,如果你要启动多个DataNode节点,需要改为配置文件的值,其中datanode.id需要改成不同的数值,每个节点不一样, base.dir需要改为不同的文件夹, 避免文件存储冲突,datanode.http.server和datanode.transpot.server的端口都需要改成不同的,避免端口冲突, 主机名也需要换成不同的,不然会造成DataNode注册混乱。因为NameNode是通过hostname来标识一个DataNode节点的。可以通过配置hosts文件
127.0.0.1 datanode01
127.0.0.1 datanode02
127.0.0.1 datanode03
配置启动参数:
如果上面几个节点都启动了,则可以开始进行单元测试看看效果了,但是在进行单元测试之前,需要先创建一个用户。
运行以下命令创建用户:
curl -H "Content-Type: application/json" -X POST -d '{"username": "admin","secret": "admin"}' "http://localhost:8081/api/user"
接着就可以运行单元测试,打开ruyuan-dfs-client模块的test文件夹,查看测试类: com.ruyuan.dfs.client .FileSystemTest,直接执行:
通过这个按钮则会将所有流程都测试一遍,包括上传文件、下载文件、创建文件夹等场景。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。