HDFS 是一个分布式文件存储系统,在集群中存储一个文件的一系列块(每一个块的大小为 128 M),每个文件块有多个副本分别存储在不同结点上,保证一个结点挂掉时数据不会丢失
HDFS 中的文件只能写入一次,任意时间只能有一个在写,不支持多并发写
HDFS优点
- 高容错
- 流式的访问数据:
一次写入多次读取,请求读取整个数据集比请求读取一条记录更加有效 - 适合大数据处理
- 可构建在廉价机器上
HDFS缺点
- 不适合低延迟要求的数据访问
- 不适合小文件存储
- 不支持多用户写入及任意修改文件
NameNode 和 DataNode 是部署在不同的结点上,典型架构是
1个 NameNode + 多个 DataNode
NameNode
- 管理文件系统的命名空间,所有对文件系统名称和属性的修改、读写操作等都会被记录到 NameNode 上去,并且决定了块是存储在哪一个 DataNode 上去
- 当 client 对 NameNode 进行请求时,NameNode 会把记录信息全部发送给 client
DataNode
- DataNode 负责响应系统客户端(client)的读写请求,同时负责block 的创建、修改、删除以及副本的复制
- 定期向 NameNode 发送心跳信息,汇报本身及其所有 block 的信息和健康情况