HadoopHDFS设计原则–硬件错误是常态而不是异常–流式数据访问 –大规模数据集 –简单的一致性模型 –“移动计算比移动数据更划算” –异构软硬件平台间的可移植性 特性–容灾–大容量/大吞吐量(水平扩展能力)–为 mapreduce 计算设计的数据本地化能力 系统结构名称节点(NameNode)管理元数据和文件块管理元数据指管理元数据信息
元数据信息包括名字空间、文件到文件块的映射、文件块到数据节点的映射三部分
管理文件块包括创建新文件块、文件复制、移除无效文件块以与回收孤立文件块等容
(1)字空间或者文件到文件快的映射的任何修改,HDFS都会通过EditLog记录下来
保存到本地磁盘中
通过这种方式可以提高系统的可靠性,并凭借EditLog日志,误中恢复而不必担心数据的一致性问题
(2)块存放的位置信息并不固定而是常常发生变化,因此系统并没有将其持久化到本地中
NameNode启动后并不需要对DataNode进行维护,DataNode会周期性地向NameNode发生心跳响应汇报其文件块信息
(3)所有信息都保存在存中,所以NameNode可以周期性快速地扫描元数据的状态,然后确定出哪些文件块由于DataNode宕机而需要重新复制,哪些件块需要被回收,哪些文件块需要在DataNode间进行迁移来保证系统的负载均衡等元数据元数据一般有三种类型,都会被保存在 NameNode 存中(1) 文件(包括目录)的名称空间,如:/user/hongzhen
lm/search4tag/full/(2) 文件到文件块的映射,如:那个文件由几个文件块(Block)组成(3) 文件块的位置信息,组成 Block 的文件块持久化在那几个 DataNode 中
EditLog主要保存了元数据更改的历史信息(执行写操作,如新建文件或移动文件),因此具有非常重要的作用
EditLog不仅持久化记