HDFS 是什么

Hadoop Distribute File System, Hadoop 的一个分布式文件系统。HDFS 使用 Java,运行在 GNU/Linux

设计理念:

  • 用于存储大文件,通常存储的文件都是 G,T 来计算
  • 快速访问,一次写入,多次读取,并提供流式数据访问(Streaming Data Access),HDFS 设计用来批量处理,而不是和用户单点交互。重点关注数据读取性能,而不是数据访问延迟。
  • 能在廉价硬件中运行
  • 良好的容错性,硬件出错的几率要高于出现异常,HDFS 设计用来检测这些问题,并且能快速恢复数据

HDFS 需要注意的问题:

  • 不适合存储大量小文件
  • 不适合对数据访问要求低延迟的场景

原理

HDFS 是一个 master/slave 架构。HDFS 集群包括一个 NameNode(master server 管理文件系统 namespace )和一组 DataNodes,通常在集群中一个节点一个,用来管理存储。HDFS 暴露了一个文件系统 namespace 孕育用户数据保存到文件。在内部,数据块会被分割成多个 block 存储,block 大小默认为 64MB,每一个 block 会在多个 DataNode 中存储多份。

  • NameNode 负责文件目录
  • DataNode 负责存储

hdfs 命令使用

和 Hadoop 一起的压缩包中有 hdfs 命令

reference