Datawhale组队学习:大数据 D2——分布式文件系统(HDFS)
创始人
2024-05-26 06:32:17
0

妙趣横生大数据 Day2

    • 三、Hadoop 分布式文件系统(HDFS)
      • 1. 分布式文件系统
      • 2. HDFS 简介
      • 3. HDFS 体系结构
      • 4. HDFS存储原理
        • 数据冗余存储
        • 数据存储策略
        • 数据错误与恢复
      • 5. HDFS数据读写过程
        • 读写过程
        • HDFS故障类型和其检测方法
      • HDFS编程实验
        • 1. 本地和集群文件间操作
        • 2. 基本文件操作
        • 3. Hadoop 系统操作

Datawhale在这里插入图片描述
大数据技术相关内容的导论课程:妙趣横生大数据 Juicy Big Data


三、Hadoop 分布式文件系统(HDFS)

1. 分布式文件系统

分布式文件系统:管理网络中跨多台计算机存储的文件系统;解决海量数据的高效存储。

文件采取“块”的方式存储,块是数据读取的基本单元。HDFS默认一个块大小为64MB(普通文件系统磁盘块为512字节),设计比较大的块的目的是为了最小化寻址开销;同时也要避免块过大影响MapReduce并行速度。

设计:“客户机/服务器”(Client/Server)

img

物理结构:

  • 主节点(Master Node),名称节点(NameNode)
    • 文件和目录的创建、删除和重命名
    • 管理数据节点和文件快的映射关系
  • 从节点(Worker Node),数据节点(DataNode)
    • 数据的存储和读取
img
  1. 分布式文件系统采用多副本存储,以保证数据完整性
  2. 分布式文件系统为大规模数据存储设计(TB级文件)

2. HDFS 简介

HDFS(Hadoop Distribute File System)

  • 是大数据领域中以分布式方式存储超大数据量文件的存储系统
  • HDFS是Hadoop和其他组件的数据存储层

优点:

  • 兼容廉价的硬件设备:实现在硬件故障的情况下也能保障数据的完整性
  • 流数据读写:不支持随机读写的操作
  • 大数据集:数据量一般在GB、TB以上的级别
  • 简单的文件模型:一次写入、多次读取
  • 强大的跨平台兼容性:采用Java语言实现

局限性:

  • 不适合低延迟数据访问:流式数据读取,较高延迟
  • 无法高效存储大量小文件:影响元数据减少效率、增加Mpa任务线程管理开销、数据节点间跳跃频繁影响性能
  • 不支持多用户写入及任意修改文件:一个文件只有一个写入者,只允许对文件追加操作

3. HDFS 体系结构

主从(Master/Slave)结构模型

一个HDFS集群包括:

  • 一个名称节点(NameNode)
  • 若干个数据节点(DataNode)
    • 周期性发送“心跳”信息,报告状态
img

【说明】用户使用 HDFS,

客户端存储时:

  1. 一个文件分为若干个数据块存储
  2. 每个数据块分布存储到若干个 DataNode 上

客户端读取时:

  1. 根据文件名从 NameNode 获取 数据块数据块位置(DataNode)
  2. 访问 DataNode 获取数据

【优点】提高了数据访问速度,读取一个文件时从不同 DataNode 上并发访问

4. HDFS存储原理

数据冗余存储

多副本方式,一个数据块的多个副本被分布到不同的数据节点上

  • 加快数据传输速度
  • 容易检出数据错误
  • 保证数据的可靠性
img

数据存储策略

  1. 数据存储

    • HDFS采用了以 **机架(Rack)**为基础的数据存放策略,一个HDFS集群通常包含多个机架

      • 不同机架之间的数据通信需要经过交换机或路由器
      • 同一机架的不同机器之间数据通信不需要交换机或路由器(通信带宽比不同机架间通信带宽大)
    • HDFS 默认每个数据节点都是在不同机架上

      • 缺点:写入数据的时候不能充分利用同一机架内部机器之间的带宽

      • 优点:1. 很高的数据可靠性

        ​ 2. 多机架并行读取数据,提高数据读取速度

        ​ 3. 更容易实现系统内部负载均衡和错误纠正

    • HDFS默认的冗余复制因子是 3

      • 每一个文件会被同时保存到 3 个地方
        • 两份副本放在同一个机架的不同机器上面
        • 第三个副本放在不同机架的机器上面
  2. 数据读取

    • HDFS提供了一个确定DataNode所属机架 ID 的 API,读取时就近读取
  3. 数据复制

    • 流水线复制(第一个DataNode写入数据后,会根据列表中DataNode将数据和列表传给第二个DataNode,以此类推)

数据错误与恢复

  1. NameNode 出错

    • NameNode 元数据信息同步存储到其他文件系统
    • 第二名称节点
  2. DataNode 出错

    • NameNode 没收到 DataNode 的‘心跳’信息,便定义为‘宕机’,数据标记为不可读,取消 I/O 请求
    • 名称节点检查发现某个数据的副本数量小于冗余因子时,启动数据冗余复制生成新的副本
  3. 数据出错

    • 网络传输磁盘错误
    • md5sha1校验、信息文件校验

5. HDFS数据读写过程

读写过程

翻译经典 HDFS 原理讲解漫画 之一----系统构成和写数据过程_笑寒x的博客-CSDN博客

img img

HDFS故障类型和其检测方法

  • 读写故障的处理
    • 读:从其他备份的节点读取(NameNode会返回数据块存在的所有DataNode)
    • 写:没有收到DataNode接受数据块的应答信号,调整通道跳过这个节点

翻译经典 HDFS 原理讲解漫画 之二----读数据和容错_笑寒x的博客-CSDN博客

  • DataNode故障处理

    • NameNode 表

      • 数据块列表:数据块N —— 存储在 DN1, DN2, DN3
      • DataNode列表:DATANODE 1 —— 存储数据块1,…,数据块N
    • 持续更新这两个表

    • 数据未充分备份会启动DataNode备份(前提是HDFS至少存在一个备份)

  • 副本布局策略

    • 第一个:就近
    • 后续:不同机架(每个机架最多存储两份副本)

翻译经典 HDFS 原理讲解漫画 之三—容错和副本布局策略_笑寒x的博客-CSDN博客

HDFS编程实验

1. 本地和集群文件间操作

# 拷贝目录到集群
hadoop fs -put  
# 拷贝文件
hadoop fs -put  # 拷贝到本地
hadoop fs -get < hdfs file or dir > < local file or dir># 拷贝并移除
hadoop fs -moveFromLocal  

在这里插入图片描述

请添加图片描述

2. 基本文件操作

# 查看
hadoop fs -ls /    # -R: 包含子目录下文件# 删除
hadoop fs -rm -r  ...
hadoop fs -rm  ...# 创建
hadoop fs -mkdir # 复制
hadoop fs -cp ... # 移动
hadoop fs -mv ... 
# 统计路径下的目录个数,文件个数,文件总计大小
hadoop fs -count #显示文件夹和文件的大小
hadoop fs -du # 查看文件
hadoop fs -cat /demo.txt
hadoop fs -tail -f /demo.txt# 更改权限
hadoop fs -chown user:group /datawhale
hadoop fs -chmod 777 /datawhale

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ObVAZO1S-1676724750207)(HDFS/image-20230218171901366.png)]

# 本地文件内容追加到hdfs文件系统中的文本文件
hadoop fs -appendToFile  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9cJuM6m-1676724750207)(HDFS/image-20230218202538200.png)]

这里遇到一个错误:Failed to APPEND_FILE /p1 for DFSClient_NONMAPREDUCE_985284284_1 on 192.168.137.101 because lease recovery is in progress. Try again later.

解决:hdfs dfs -appendToFile error 问题解决_故事の尾音的博客-CSDN博客_hdfs appendtofile

# 修改 hdfs-stie.xml 文件

dfs.support.appendtrue
dfs.client.block.write.replace-datanode-on-failure.policyNEVER

dfs.client.block.write.replace-datanode-on-failure.enabletrue

3. Hadoop 系统操作

# 改变文件在hdfs文件系统中的副本个数
hadoop fs -setrep -R 3 # 查看对应路径的状态信息
hdoop fs -stat [format] < hdfs path ># %b:文件大小
# %o:Block大小
# %n:文件名
# %r:副本个数
# %y:最后一次修改日期和时间# 手动启动内部的均衡过程(DataNode 数据保存不均衡)
hadoop balancer    # 或 hdfs balancer# 管理员通过 dfsadmin 管理HDFS
hdfs dfsadmin -help
hdfs dfsadmin -report
hdfs dfsadmin -safemode 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WPScNjvH-1676724750207)(HDFS/image-20230218204809616.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IjuanMXa-1676724750208)(HDFS/image-20230218205017836.png)]


Datawhale在这里插入图片描述
大数据技术相关内容的导论课程:妙趣横生大数据 Juicy Big Data

相关内容

热门资讯

清朝有很多有名的历史人物,能给... 清朝有很多有名的历史人物,能给大家说几个清朝的历史人物吗?林则徐,张之洞,乾隆皇帝,曾国藩,朱耷,这...
曹丕的“太子四友”指的是谁 曹丕的“太子四友”指的是谁首先说,曹丕这四个,陈群司马懿是顶级的谋士和政治家,吴质有些小聪明,朱铄不...
在这次遇难者中存在了几名幸存者... 在这次遇难者中存在了几名幸存者。这句话是不是逻辑错误这句话的逻辑没有问题,有问题的是用词不当。遇难者...
在中国古代,有许多充满哲学智慧... 在中国古代,有许多充满哲学智慧的成语典故、寓言故事,如...在中国古代,有许多充满哲学智慧的成语典故...
清澈的意思是什么,… 清澈的意思是什么,…清净而明澈清而透明【造句】看着他清澈而又天真的眼眸,我的心久久不能平静……
蚂蚁森林合种爱情树一方退出怎么... 蚂蚁森林合种爱情树一方退出怎么找回来两个人合种的爱情树,我退出来,我怎么再次加入进去继续合作那个树?...
有好看的古代修炼小说推荐吗? 有好看的古代修炼小说推荐吗?古代重生穿越修炼......让我帮你找一下这些古代修炼的小说,找到这些类...
女主重生爱上前世辜负的人 女主重生爱上前世辜负的人重生我是你正妻渣女重生之竹马重生之弃渣重生之夫君可欺重生之换我疼你重生妇归来...
华胥引有广播剧吗 华胥引有广播剧吗现有的华胥引的广播剧是忆语广播剧社出品的,只有十三月和杯(这个是错字,请无视,居然输...
选文韩麦尔先生在说了,我的朋友... 选文韩麦尔先生在说了,我的朋友们我就要离开你们呢了,再见了银头鲑鱼tj75rt6yturdrruv ...
中通快递从北京保定市到广东揭阳... 中通快递从北京保定市到广东揭阳普宁要多久?中通快递从北京保定市到广东揭阳普宁要多久?从北京到广东需要...
关于离婚悲伤的歌曲 关于离婚悲伤的歌曲关于离婚悲伤的歌曲林俊杰《可惜没如果》 张靓颖《我走以后》 金志文《流着泪说分手》...
形容文笔差怎么说啊? 形容文笔差怎么说啊?哥哥姐姐,麻烦问下,我是做文员的,形容文案方面的工作很差应该怎么说啊?粗鄙怎么样...
我想做未婚妈妈,可行吗? 我想做未婚妈妈,可行吗?没关系吧?我同学好多他们妈妈都是30岁以后省得他们,都没事啊,但是如果你自己...
如何在两个excel表格里筛选... 如何在两个excel表格里筛选出重复的名字如何在两个excel表格里筛选出重复的名字1、电脑打开EX...
且试天下 哪些小说是用白绫做武... 且试天下 哪些小说是用白绫做武器的?神雕侠侣吖- -..小龙女一开始就是用白绫的聊斋 辛十四娘嘿嘿~...
自带高冷体质,笑起来温暖又治愈... 自带高冷体质,笑起来温暖又治愈的星座,你了解吗?虽然天生高冷体质,但是笑起来特别的温暖治愈的新作用天...
火星未解之谜 火星未解之谜多列举一些,每个事例最好长一点,谢啦~“火星人脸”, “地表被水冲击河道”,“原始大气和...
我是1991年10月4号生的,... 我是1991年10月4号生的,是什么星座啊有的说是处女座有的说是天平座,糊涂了,到底是什么啊很负责任...
梦见白狐狸,然后当时我骑着自行... 梦见白狐狸,然后当时我骑着自行车,我想躲开它,他很凶的的追赶我,最后它向我扑了过来,然后我就醒乐.你...