用Java实现HDFS的最基本的功能:上传文件、下载文件、删除文件以及列出所有文件。
- 系统由一个 NAMENODE 和三个 DATANODE 组成
- 数据复制数为 2
- 只支持一个简单的单层的目录空间(即所有文件都在根目录下,不支持子目录)
- 提供一个基于命令行的客户端程序,使用该程序,用户可以
a. 拷贝一个本地文件到 HDFS 中 b. 列出 HDFS 中存在的所有文件 c. 删除一个 HDFS 中的文件 d. 拷贝一个 HDFS 文件到本地
- 不考虑 BALANCER(即永远就是三台机器)
- 无需任何性能优化
- 可不考虑 DATANODE 崩溃重启后的 REPLICATOR 机制(即假设在一个 DATANODE 崩溃期间,其上存储的文件并无变化) 补充:1.实现基于多主机的HDFS,NameNode,DataNode需要部署在不同的主机上,依靠网络进行文件同步和通信
- DataNode和NameNode之间的通信机制修改为RMI。
- 多用户处理:配置文件。
- 文件的压缩-->分割-->合并。(通过配置文件)
- 修正文件、socket部分的异常处理。
- 数据持久化,重新登录时保持上次记录:序列化。