大数据学习(3)- 分布式文件系统HDFS

文章目录

  • 目录
    • 1.分布式文件系统
      • 1.1 计算机集群概念
      • 1.2 分布式文件系统结构
    • 2.HDFS简介
      • 2.1 HDFS设计的目标
      • 2.2HDFS的局限性
      • 2.3 块的概念
      • 2.4 HDFS主要组件及其功能
        • 2.4.1 名称节点
        • 2.4.2 第二名称节点
        • 2.4.3 数据节点
    • 3.HDFS体系结构
      • 3.1 HDFS体系结构介绍
      • 3.2 HDFS体系结构的局限性
    • 4.HDFS存储原理
      • 4.1 冗余数据保存
      • 4.2 数据存取策略
      • 4.3 数据错误和恢复
        • 4.3.1 名称节点出错
        • 4.3.2 数据节点出错
        • 4.3.3 数据出错
    • 5.HDFS数据读写过程
      • 5.1 数据读取过程
      • 5.2 数据存储过程
      • 5.3 读写介绍![在这里插入图片描述](https://img-blog.csdnimg.cn/20190329165747536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aTExMTExMTEx,size_16,color_FFFFFF,t_70)
        • 5.3.1 读数据过程
        • 5.3.2 写数据过程
    • 6.HDFS编程实践
      • 6.1 HDFS常用命令
      • 6.2 HDFS的web界面

目录

1.分布式文件系统

1.1 计算机集群概念

大数据学习(3)- 分布式文件系统HDFS_第1张图片

Hadoop的分布式文件存储,使得文件的存储不在依赖于计算机性能,普通的计算机也可以组件集群。

1.2 分布式文件系统结构

大数据学习(3)- 分布式文件系统HDFS_第2张图片

2.HDFS简介

2.1 HDFS设计的目标

  • 兼容廉价的硬件设备
  • 流数据的读写
  • 大数据集的存储于管理
  • 简单的文件模型
  • 强大的跨平台性能

2.2HDFS的局限性

  • 不适合低延迟的数据访问(HBASE支持实时访问)
  • 无法高效的存储大量的小文件(nameNode节点的存储有限,如果小文件过多,元数据就多)
  • 不支持多用户写入及任意修改

2.3 块的概念

大数据学习(3)- 分布式文件系统HDFS_第3张图片

2.4 HDFS主要组件及其功能

大数据学习(3)- 分布式文件系统HDFS_第4张图片

2.4.1 名称节点

大数据学习(3)- 分布式文件系统HDFS_第5张图片
大数据学习(3)- 分布式文件系统HDFS_第6张图片
大数据学习(3)- 分布式文件系统HDFS_第7张图片
大数据学习(3)- 分布式文件系统HDFS_第8张图片

2.4.2 第二名称节点

大数据学习(3)- 分布式文件系统HDFS_第9张图片

2.4.3 数据节点

  • 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表
  • 每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中

3.HDFS体系结构

3.1 HDFS体系结构介绍

大数据学习(3)- 分布式文件系统HDFS_第10张图片

  • HDFS的命名空间包含目录、文件和块
  • 在HDFS1.0体系结构中,在整个HDFS集群中只有一个命名空间,并且只有唯一一个名称节点,该节点负责对这个命名空间进行管理
  • HDFS使用的是传统的分级文件体系,因此,用户可以像使用普通文件系统一样,创建、删除目录和文件,在目录间转移文件,重命名文件等
    大数据学习(3)- 分布式文件系统HDFS_第11张图片
    大数据学习(3)- 分布式文件系统HDFS_第12张图片

3.2 HDFS体系结构的局限性

大数据学习(3)- 分布式文件系统HDFS_第13张图片

4.HDFS存储原理

4.1 冗余数据保存

大数据学习(3)- 分布式文件系统HDFS_第14张图片

4.2 数据存取策略

大数据学习(3)- 分布式文件系统HDFS_第15张图片
大数据学习(3)- 分布式文件系统HDFS_第16张图片

4.3 数据错误和恢复

HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态,而不是异常,并设计了相应的机制检测数据错误和进行自动恢复,主要包括以下几种情形:名称节点出错、数据节点出错和数据出错。

4.3.1 名称节点出错

  • 名称节点保存了所有的元数据信息,其中,最核心的两大数据结构是FsImage和Editlog,如果这两个文件发生损坏,那么整个HDFS实例将失效。因此,HDFS设置了备份机制,把这些核心文件同步复制到备份服务器SecondaryNameNode上。当名称节点出错时,就可以根据备份服务器SecondaryNameNode中的FsImage和Editlog数据进行恢复。

4.3.2 数据节点出错

大数据学习(3)- 分布式文件系统HDFS_第17张图片

4.3.3 数据出错

  • 网络传输和磁盘错误等因素,都会造成数据错误
  • 如何判断数据出错:HDFS在创建每个文件的时候,都默认给出了一个校验码,在读取文件的时候,会比对校验码,如果校验码没有错,则数据没有出错。
  • 在文件被创建时,客户端就会对每一个文件块进行信息摘录,并把这些信息写入到同一个路径的隐藏文件里面
  • 当客户端读取文件的时候,会先读取该信息文件,然后,利用该信息文件对每个读取的数据块进行校验,如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块

5.HDFS数据读写过程

HDFS支持两种方式的交互,我们可以自由的选择shell和java的方式。

5.1 数据读取过程

大数据学习(3)- 分布式文件系统HDFS_第18张图片

5.2 数据存储过程

大数据学习(3)- 分布式文件系统HDFS_第19张图片

5.3 读写介绍大数据学习(3)- 分布式文件系统HDFS_第20张图片

5.3.1 读数据过程

大数据学习(3)- 分布式文件系统HDFS_第21张图片

5.3.2 写数据过程

大数据学习(3)- 分布式文件系统HDFS_第22张图片

6.HDFS编程实践

参考链接:http://dblab.xmu.edu.cn/blog/290-2/
大数据学习(3)- 分布式文件系统HDFS_第23张图片
大数据学习(3)- 分布式文件系统HDFS_第24张图片

6.1 HDFS常用命令

  • hadoop fs -ls :显示 指定的文件的详细信息
  • hadoop fs -mkdir :创建 指定的文件夹
  • hadoop fs -cat :将 指定的文件的内容输出到标准输出(stdout)
  • hadoop fs -copyFromLocal :将本地源文件复制到路径指定的文件或文件夹中

6.2 HDFS的web界面

大数据学习(3)- 分布式文件系统HDFS_第25张图片

你可能感兴趣的:(ML&DL-大数据学习,大数据,HDFS)