大数据处理技术导论Task2笔记

HDFS是根据GFS论文设计出来的。
HDFS默认一个块的大小是64mb
小的文件用HDFS来存储反而性能更差。

HDFS的设计目标

  • 兼容廉价的硬件设备:在硬件故障的时候也能保障数据完整。
  • 简单的文件模型:一次写入,多次读取
  • 跨平台:使用java语言实现
    HDFS劣势:
  • 不适合低延迟数据访问,低延迟可以使用HBase数据库
  • 无法高效存储大量小文件。
  • 不支持多用户写入及任意修改文件。一个文件只能有一个写入者(是指只能由一个角色
    写还是同一时间一个人写?),且文件只能追加不能随机写。
    整个系统本身采用主从结构,每个集群又分为一个名称节点namenode和多个数据节点datanode。
  • 名称节点的功能是负责协调数据的读、写,分配命名、空间等资源。
  • 数据节点负责实际的执行数据块的创建、删除和复制。

数据的存取策略

HDFS系统中的数据会被分成多个块,每个块会进行冗余副本的复制,所有的副本中,第一块会被写入到接到写入请求的那个数据节点上,其他的块写入另一个机架的数据节点中。
读取的时候会先向namenode询问数据所在的数据节点,然后负载均衡分配读取目标,顺序(为什么不是并行?)读取各个数据块,最后进行散列值验证。

常见故障和修复

名称节点出错—元信息同步其他文件系统,准备第二名称节点,故障时第二名称节点首先同步元信息之后,替换工作。
数据节点出错—通过心跳包来检测,当宕机时,名称节点会找新的机子启动数据复制,再造一个同样的数据节点出来。
数据出错—数据块散列值校验出错,则会访问其他副本。并且后续会重新复制制作失效的数据块。

浙ICP备19012682号