分布式文件系统HDFS

HDFS架构

1 Master(NameNode/NN) 带 N个Slavers(DataNode/DN)

HDFS/YARN/HBASE

一个文件会被拆分为多个Block

blocksize:128M

130M===>2个Block:128M和2M

NameNode(NN)

  • 负责客户端请求的响应
  • 负责元数据(文件的名称、副本系数、Block存放的DN)的管理

DataNode(DN)

  • 存储用户的文件对应的数据块(Block)
  • 要定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况

    A typical deploymenthas a dedicated machine that runs only the NameNode software. Each of the othermachines in the cluster runs one instance of the DataNode software

The architecture doesnot preclude running multiple DataNodes on the same machine but in a realdeployment that is rarely the case.

NameNode + N个DataNode

建议:NameNode和DataNode部署在不同的节点上

副本机制

replicationfactor:副本因子

HDFS副本存放策略

第一个block副本放在和client所在的node里(如果client不在集群范围内,则这第一个node是随机选取的,当然系统会尝试不选择哪些太满或者太忙的node)。

第二个副本放置在与第一个节点不同的机架中的node中(随机选择)。

第三个副本和第二个在同一个机架,随机放在不同的node中。

HDFS shell常用命令的使用

  • ls
  • mkdir
  • put
  • get
  • rm

HDFS读写流程

三个部分

客户端、namenode(可理解为主控和文件索引类似linux的inode)、datanode(存放实际数据的存server)

如何写数据过程

读取数据过程

容错

第一部分:故障类型及其检测方法(nodeserver故障,和网络故障,和脏数据问题)