Hadoop-HDFS概览

这篇具有很好参考价值的文章主要介绍了Hadoop-HDFS概览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、HDFS是什么

Hadoop Distributed File System 的缩写,即Hadoop 分布式文件系统

二、HDFS抽象认识

我们打开windows中一个文件的详细信息,看看平时我们用的文件系统是什么样的

Hadoop-HDFS概览,hadoop,hdfs,大数据

这份文件的详细信息中有文件名称、文件类型、文件夹路径、大小、日期、所有者、计算机归属

因为这是我的个人电脑,所以计算机一栏显示的是这台电脑

那么分布式文件系统是不是就应该显示多台机器中的某一台机器呢?

答案是的

我们按着想象画下我们现在心目中的分布式文件系统是什么样的

Hadoop-HDFS概览,hadoop,hdfs,大数据

接下来我们去官方网站上验证下我们的想象

三、HDFS官方学习

1、架构描述

下面我们看看 HDFS官方网站上是怎么描述的

Hadoop-HDFS概览,hadoop,hdfs,大数据

HDFS是主/从架构,有一个NameNode(主)和多个DataNode(从)组成,通常是一个节点一个DataNode。

NameNode负责维护文件系统命名空间,如打开、关闭和重命名文件和目录和文件数据块到某个DataNode的映射。

DataNode负责提供来自文件系统客户端的读写请求,和来自NameNode的指示执行块创建、删除和复制。

NameNode会定期从集群中的每个数据节点接收一个心跳信号和一个块报告。接收到心跳信号意味着DataNode工作正常。块报告包含DataNode上所有块的列表。

2、块描述及放置策略

HDFS将每个文件存储为一个块序列,每个文件都可以配置块大小和副本数。文件中除最后一个块外的所有块都是相同的大小。文件在HDFS中就是这样的:

Hadoop-HDFS概览,hadoop,hdfs,大数据

默认情况下每个块会存放三份来实现容错,下面是官方的描述图:

Hadoop-HDFS概览,hadoop,hdfs,大数据

副本的放置对HDFS的可靠性和性能至关重要,需要考虑可靠性、可用性和网络带宽利用率。通常情况下,同一机架中机器之间的网络带宽大于不同机架中机器间的网络带宽。以默认副本数3为例,为了满足可靠性,需要放置到不同机架上,为了降低网络带宽消耗应尽可能的放在一个机架上,因此第一个块会放在本机上(如果写入程序位于DataNode节点放本机,如果不是就放同机架随机节点上),第二个块放不同机架的节点上,第三个块放同机架的不同节点上。此策略可减少机架间写入流量,这通常会提高写入性能。

如果副本数>3,则随机确定第4个和以下副本的位置,同时将每个机架的复制副本数量保持在上限以下,基本上为(副本数-1)/机架+2)。

3、NameNode中元数据的持久化

HDFS命名空间由NameNode存储,NameNode使用一个名为EditLog的事务日志来持久记录文件系统元数据发生的每一次更改。例如,在HDFS中创建一个新文件会导致NameNode在EditLog中插入一条记录来指示这一点。类似地,更改文件的副本数也会导致将新记录插入到EditLog中。NameNode使用其本机文件系统中的文件来存储EditLog。

整个文件系统命名空间,包括块到文件的映射和文件系统属性,都存储在一个名为FsImage的文件中。FsImage也作为文件存储在NameNode的本地文件系统中。

NameNode将整个文件系统命名空间和文件块映射的映像保存在内存中。当NameNode启动时,或者检查点由可配置的阈值触发时,它从磁盘读取FsImage和EditLog,将EditLog中的所有事务应用于FsImage的内存表示,并将此新版本刷新到磁盘上的新FsImage。然后,它可以截断旧的EditLog,开始新的EditLog记录,因为它的事务已应用于持久FsImage。这个过程被称为检查点。检查点的目的是通过获取文件系统元数据的快照并将其保存到FsImage来确保HDFS对文件系统元数据具有一致的视图。

检查点可以在以秒为单位的给定时间间隔(dfs.namenode.checkpoint.eperiod)触发,也可以在累积了给定数量的文件系统事务(dfs.name node.cacheckpoint.txns)之后触发。如果同时设置了这两个属性,则要达到的第一个阈值将触发检查点。

DataNode对HDFS文件一无所知,它只负责存储每个文件中的块。当DataNode启动时,它会扫描其本地文件系统,生成与每个本地文件对应的所有HDFS数据块的列表,并将此报告发送到NameNode。该报告称为区块报告。

4、HDFS的访问方式

HDFS允许以文件和目录的形式组织用户数据。它提供了一个名为FSshell的命令行接口,允许用户与HDFS中的数据进行交互。这个命令集的语法类似于用户已经熟悉的其他shell

比如:

        创建目录:hadoop fs -mkdir /test

        删除目录:hadoop fs -rm -r /test

        查看文件:hadoop fs -cat /test/test.txt

        查看文件大小: hadoop fs -du -h /test

对于HDFS管理员可以使用DFSAdmin命令集

        将集群置于安全模式:hdfs dfsadmin -safemode enter

        生成数据节点列表:hdfs dfsadmin -report

        重新部署或停用数据节点:hdfs dfsadmin -refreshNodes

此外HDFS还可以通过多种不同的方式从应用程序访问。在本机中,HDFS为应用程序提供了一个FileSystem Java API以供使用。还可以使用HTTP浏览器和来浏览HDFS实例的文件。

5、HDFS空间回收

如果启用了垃圾桶配置,HDFS中执行文件删除操作时会将其移动到垃圾目录(每个用户在/user/<username>/.trash下都有自己的垃圾目录)。只要文件仍在垃圾中,就可以快速恢复。最近删除的大多数文件都会移动到当前垃圾桶目录(/user/<username>/.trash/current),在可配置的时间间隔内,HDFS会为当前垃圾桶中的文件创建检查点(在/user/<username>/.trash/<date>下),并在旧检查点过期时删除这些检查点。文件的删除会导致与该文件相关联的块被释放,只是时间会延迟些。示例如下:

# hadoop fs -rm -r /test

Moved: hdfs://localhost:8020/test to trash at: hdfs://localhost:8020/user/root/.Trash/Current

windows中我们按Shift+delete可以永久删除文件,跳过垃圾桶,HDFS删除时如果加上skipTrash选项也会跳过垃圾桶直接将文件删除

# hadoop fs -rm -r -skipTrash /test

Deleted /test

当降低文件的副本数时,NameNode会选择可以删除的多余副本,在下一次DataNode心跳时将此信息传输到DataNode,DataNode删除相应的块。

hadoop fs -setrep -w -R 1 /test文章来源地址https://www.toymoban.com/news/detail-795918.html

到了这里,关于Hadoop-HDFS概览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hadoop-hdfs简介及常用命令详解(超详细)

    HDFS(Hadoop Distributed File System)是Apache Hadoop生态系统中的分布式文件系统,用于存储和处理大规模数据集。HDFS具有高容错性、高可靠性和高吞吐量的特点,适用于大数据处理和分析场景。本文将介绍HDFS的基本概念和常用操作,帮助您更好地理解和使用HDFS。 HDFS 是一个分布式

    2024年02月04日
    浏览(41)
  • Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。 思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。 目录 一、引入 hdfs是什么 hdfs的由来 hdfs架构体系 hdfs的优缺点 优点 缺点 二、HDFS_block简介和注意

    2023年04月19日
    浏览(46)
  • 大数据技术之Hadoop(HDFS)

    1)HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是 分布式文件管理系统 。HDFS只是分布式文件管理系统中的一种。 2)HDFS定义

    2024年02月04日
    浏览(32)
  • 大数据开发之Hadoop(HDFS)

    1、HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。 2、HDFS定义 H

    2024年01月20日
    浏览(41)
  • Hadoop理论及实践-HDFS读写数据流程(参考Hadoop官网)

    主节点和副本节点通常指的是Hadoop分布式文件系统(HDFS)中的NameNode和DataNode。 NameNode(主节点):NameNode是Hadoop集群中的一个核心组件,它负责管理文件系统的命名空间和元数据。它记录了文件的目录结构、文件的块分配信息以及每个文件块所在的DataNode等关键信息。NameNo

    2024年02月14日
    浏览(36)
  • 大数据技术之Hadoop(HDFS)——超详细

    1.1 HDFS产出背景及定义 1)HDFS产生背景 先给大家介绍一下什么叫HDFS,我们生活在信息爆炸的时代,随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这

    2024年02月03日
    浏览(43)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(35)
  • 0201hdfs集群部署-hadoop-大数据学习

    下面我们配置下单namenode节点hadoop集群,使用vmware虚拟机环境搭建。vmware虚拟机的配置,在下面链接2有,或者自行查阅文档。hadoop安装包可到官网下载,当前相关软件环境如下: 软件 版本 说明 hadoop 3.3.4 jar包 vmware 15.5 虚拟机 centos 7.6 服务器操作系统 xshell 6 远程连接 jdk 1.8

    2024年02月11日
    浏览(33)
  • hadoop之hdfs生产数据块损坏修复方法

    1、手动修复 检查数据块丢失情况 hdfs fsck / 修复指定路径的hdfs文件,尝试多次 hdfs debug recoverLease -path 文件位置 -retries 重复次数 删除所有损坏的块的数据文件 hdfs fsck / -delete 2、自动修复 hdfs会自动修复损坏的数据块,当数据块损坏后, DN节点执行directoryscan(datanode进行内村和

    2023年04月11日
    浏览(49)
  • Hadoop HDFS:海量数据的存储解决方案

    在大数据时代,数据的存储与处理成为了业界面临的一大挑战。Hadoop的分布式文件系统(Hadoop Distributed File System,简称HDFS)作为一个高可靠性、高扩展性的文件系统,提供了处理海量数据的有效解决方案。本文将深入探讨HDFS的设计原理、架构组成、核心功能以及实际应用场

    2024年04月23日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包