#HDFSJava

简述

用Java实现HDFS的最基本的功能:上传文件、下载文件、删除文件以及列出所有文件。

详细要求:

  1. 系统由一个 NAMENODE 和三个 DATANODE 组成
  2. 数据复制数为 2
  3. 只支持一个简单的单层的目录空间(即所有文件都在根目录下,不支持子目录)
  4. 提供一个基于命令行的客户端程序,使用该程序,用户可以

a. 拷贝一个本地文件到 HDFS 中 b. 列出 HDFS 中存在的所有文件 c. 删除一个 HDFS 中的文件 d. 拷贝一个 HDFS 文件到本地

  1. 不考虑 BALANCER(即永远就是三台机器)
  2. 无需任何性能优化
  3. 可不考虑 DATANODE 崩溃重启后的 REPLICATOR 机制(即假设在一个 DATANODE 崩溃期间,其上存储的文件并无变化) 补充:1.实现基于多主机的HDFS,NameNode,DataNode需要部署在不同的主机上,依靠网络进行文件同步和通信

Plane

ToDo:

  1. DataNode和NameNode之间的通信机制修改为RMI。
  2. 多用户处理:配置文件。
  3. 文件的压缩-->分割-->合并。(通过配置文件)

Doing

Done

  1. 修正文件、socket部分的异常处理。
  2. 数据持久化,重新登录时保持上次记录:序列化。