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

目录

1.分布式文件系统

1.1 计算机集群概念

在这里插入图片描述

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

1.2 分布式文件系统结构

在这里插入图片描述

2.HDFS简介

2.1 HDFS设计的目标

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

2.2HDFS的局限性

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

2.3 块的概念

在这里插入图片描述

2.4 HDFS主要组件及其功能

在这里插入图片描述

2.4.1 名称节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.2 第二名称节点

在这里插入图片描述

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

3.HDFS体系结构

3.1 HDFS体系结构介绍

在这里插入图片描述

  • HDFS的命名空间包含目录、文件和块
  • 在HDFS1.0体系结构中,在整个HDFS集群中只有一个命名空间,并且只有唯一一个名称节点,该节点负责对这个命名空间进行管理
  • HDFS使用的是传统的分级文件体系,因此,用户可以像使用普通文件系统一样,创建、删除目录和文件,在目录间转移文件,重命名文件等
    在这里插入图片描述
    在这里插入图片描述

3.2 HDFS体系结构的局限性

在这里插入图片描述

4.HDFS存储原理

4.1 冗余数据保存

在这里插入图片描述

4.2 数据存取策略

在这里插入图片描述
在这里插入图片描述

4.3 数据错误和恢复

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

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

在这里插入图片描述

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

5.HDFS数据读写过程

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

5.1 数据读取过程

在这里插入图片描述

5.2 数据存储过程

在这里插入图片描述

5.3 读写介绍在这里插入图片描述

5.3.1 读数据过程

在这里插入图片描述

5.3.2 写数据过程

在这里插入图片描述

6.HDFS编程实践

参考链接:http://dblab.xmu.edu.cn/blog/290-2/
在这里插入图片描述
在这里插入图片描述

6.1 HDFS常用命令

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

6.2 HDFS的web界面

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 头歌大数据从入门到实战 - 第2章 分布式文件系统hdfs 分布式文件系统HDFS是Apache Hadoop的核心组件之一,它是一个可扩展的、可靠性的分布式文件系统,适用于大规模数据存储和处理。HDFS的设计目标是能够在廉价硬件上运行,并且能够处理大量的数据。HDFS采用了主从架构,其中有一个NameNode负责管理文件系统的命名空间和客户端的访问,而多个DataNode负责存储实际的数据块。HDFS的数据块大小通常为128MB,这样可以减少寻道时间,提数据读写效率。HDFS还提供了数据冗余机制,通过多个副本来保证数据的可靠性和可用性。HDFS的应用场景非常广泛,包括数据仓库、日志分析、机器学习等领域。 ### 回答2: 分布式文件系统(hdfs)在大数据处理中扮演着非常重要的角色,本文将以“头歌大数据从入门到实战”的第二章为基础,分享一些本人的看法和学习体会。 首先,为什么需要分布式文件系统? 在大数据处理中,数据量很大,单机存储和处理是非常困难的,因此需要将数据存储到多个机器上,并且通过网络互相传递进行处理和计算,这就需要一种分布式文件系统来解决。分布式文件系统可以将数据分布到多个节点上,使得每个节点上处理的数据量相对较小,从而降低了单节点的存储和处理压力。 具体而言,hdfs是如何实现分布式文件系统的呢? hdfs的核心组成部分是namenode和datanode。namenode负责管理文件系统的命名空间和客户端访问数据的控制,datanode则负责实际存储数据和处理读写请求。其中,namenode具有可靠性,因为它存储了整个文件系统的关键数据,如果出现故障,将会对整个文件系统造成影响。因此,为了保证namenode的可用性,通常会使用hadoop的另外一个子系统,即hadoop HA(High Availability)。 此外,在hdfs中,还提供了数据块(block)的概念,每个数据块的大小默认为128MB。hdfs中的大文件会自动被分为多个数据块存储在不同的datanode上,这些数据块之间的复制也可以由hdfs自动完成。在hdfs中,副本的存储策略和副本数量可以由管理员进行配置,首次存储数据时,可以指定数据块的复制因子,副本在hdfs集群中具有很好的容错性,即使某个datanode发生故障,也可以从其他datanode上获取副本,从而保证了数据的可靠性和一致性。 最后,对于初学者而言,在学习hdfs的时候,需要先了解hdfs的基本组成和特性,再通过具体的实践和案例去深入学习和了解。在hdfs的使用过程中,需要注意一些具体的细节,例如文件的存储路径、权限设置、读写方式、数据复制等,都会对hdfs的性能和可靠性产生影响,需要认真细致地进行调试和优化。 总之,分布式文件系统大数据处理中是非常重要的一环,hdfs作为其中的代表产品,具有很好的可扩展性、可靠性和容错性,被广泛应用于大数据领域。学习hdfs需要注重基础知识的学习和实际练习的结合,全面深入地理解hdfs的原理和实现,从而能够更好地进行大数据处理和应用。 ### 回答3: 分布式文件系统HDFS是Apache Hadoop的核心组件之一,是一种适用于存储大量数据的分布式文件系统。该系统通过横向扩展,将大量的数据分散存储在多台计算机上,旨在提数据的可靠性和可扩展性。 HDFS是由两个核心组件组成的:NameNode和DataNode。NameNode是HDFS的主节点,主要负责管理文件系统的命名空间和权限控制。它维护着整个文件系统的元数据信息,包括文件的名称、块的位置、副本数量等。DataNode是HDFS的数据节点,主要负责存储实际的数据块。在HDFS中,文件会被划分为一个个的块,并将每个块的多个副本分散存储在多台机器上,以确保数据的可靠性和可用性。 HDFS还提供了一些重要的特性,例如数据的自动副本备份机制、故障转移系统、数据块的迁移和压缩等。这些特性可以帮助用户轻松地管理大规模的数据,从而降低存储和维护成本。 为了更好地理解HDFS的工作原理,用户需要学习Hadoop中的文件读写操作。针对文件的读操作主要分为两个阶段:第一阶段是客户端向NameNode查询文件的元数据信息,包括所有数据块的位置和大小;第二阶段是客户端根据元数据信息向对应的DataNode获取数据块,并将数据合并还原为一个完整的文件。文件的写操作大致分为三个步骤:首先,客户端向NameNode申请创建一个新的文件,并分配空间;其次,客户端向一个或多个DataNode写入数据;最后,客户端通知NameNode文件写入完成,NameNode更新文件系统中该文件的元数据信息。 总之,分布式文件系统HDFS大数据领域扮演着至关重要的角色,它能够协助用户轻松处理大规模的数据,降低存储和维护成本,提数据的可靠性和可扩展性,具有重要的发展前景和应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值