这是我参与「第四届青训营 」笔记创作活动的的第1天
前几天我们小组开会确定了大项目的选题是--开发一个分布式存储系统。组长在gitee找到了一些参考资料,链接如下
自研分布式小文件存储系统: 小文件存储: 几KB~几百MB之间的文件存储 (gitee.com)
这个项目是某个培训机构的课程,因此好处很明显了,拥有许多的相关资料,在B站也有相关视频,但是无奈本大数据小白对于视频的内容听不懂,而且讲师节奏很快。下载源码一看几百个文件我就从入门到放弃了/(ㄒoㄒ)/~~
当然小组任务还是要积极参与的,这个不行还可以找下一个demo学习,我从gitee上找到另一个可以用来学习的项目,链接如下:
sdfs: 短小精干的分布式存储系统 高容错性 数据自动保存多个副本 副本丢失后,自动恢复 适合批处理 移动计算而非数据 数据位置暴露给计算框架 适合小数据处理 kb,m级数据的数据存储 海量规模以上的文件数量 海量节点规模 流式文件访问 一次性写入,多次读取 保证数据一致性 可构建在廉价机器上 通过多副本提高可靠性 提供了容错和恢复机制 (gitee.com)
这个内容比较就比较少,非常适合我这种新手学习,接下来就是配置安装的过程,我用的是vscode+java_1.8,因为这是个maven项目,所以先要导入包,如果版本不对可以根据提示修改,我发现slf4j包,javax包,fastjson这些包都没有,所以先在项目的pom.xml文件中导入包,配置如下
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.10.graal</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
配好环境后找到namenode包下的NameNode.java文件,发现点击run code没法运行,只能run java,随后运行又遇到了终端乱码的问题
经过一番努力,找到了为什么vscode上run code和run java结果不同的原因,大概意思就是run code 只会编译一个(即当前的)java文件,而run java(推荐使用)会把与之相关的包都编译了,所以前一个方法会报一个类没有找到的错误,相关文章链接如下:
VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号 - Dre_am_tale - 博客园 (cnblogs.com)
乱码问题的解决可以参考:
vscode终端中文乱码问题的解决方案合集c++_tenders15的博客-CSDN博客_vscode终端中文乱码
具体到这个问题,就是原作者的文件采用的是GBK方式编码,而我的环境默认UTF-8,所以会乱码,我临时改变终端的编码方式为936(即GBK的代号)就ok了,方法是在.vscode文件中添加如下配置,出于个人偏好,我默认在PowerShell中运行
{
"java.configuration.updateBuildConfiguration": "disabled",
"code-runner.runInTerminal": true,
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"Command Prompt": {
"path": "C:\\Windows\\System32\\cmd.exe",
"args": ["-NoExit", "/K", "chcp 936"]
},
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "/C", "chcp 936"]
}
}
}
这样乱码问题解决,这个demo就暂时能跑通了