This action will force synchronization from 儒猿中间件/自研分布式小文件存储系统, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
定位: 小文件存储: 几KB~几百MB之间的文件存储。
本仓库存放的是《儒猿IT-石杉架构课》的中间件项目 【自研分布式小文件系统】,版权归儒猿技术窝所有,侵权将追究法律责任
架构课程详细信息
更多技术干货,请扫描下方二维码,关注公众号儒猿技术窝
由于源码使用了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,直接执行:
通过这个按钮则会将所有流程都测试一遍,包括上传文件、下载文件、创建文件夹等场景。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。