【博学谷学习记录】超强总结,用心分享|狂野大数据课程【HDFS框架】的总结分析

HDFS的概述
  • 介绍
1、HDFS的全称Hadoop Distributed File System,Hadoop分布式文件系统
2、HDFS来自谷歌的论文GFS
  • 特点
1、HDFS集群可以将很多廉价色计算机组合在一起,来存储数据,强调是整体的存储能力,而不是单机的能力

2、HDFS的主机几乎是无限扩展,理论上可以存储无限多文件

3、HDFS合适存储大文件,不适合存小文件,因为HDFS中不管是大文件还是小文件都会占用一份元数据,而每一条元数据是150字节,这些元数据是由NameNode内存来管理,如果小文件过多,可能会耗尽NameNode内存,就无法存储新的文件

4、HDFS上的文件只支持追加写入,不支持对文件的随机修改,因为HDFS存储的一般都是已经发生过的历史数据,不需要修 改
5、HDFS存储文件过程不是实时的,存储时需要消耗一定的时间,有延迟,所以一般用于离线数据存储
HDFS的架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-81sEvPSO-1663573160533)(HDFS框架.assets/image-20220906210317887.png)]

  • NameNode

    1、NameNode管理整个HDFS集群
    2、NameNode管理整个HDFS的所有元数据(/a.txt rwx 1K 3  {blk:node1,node2,node3})
    3、Client要上传或者下载文件必须先找NameNode
    4、一旦NameNode挂掉,整个HdFS集群将无法工作
    5、各个DataNode隔一段时间向NameNode汇报自己的Block信息和磁盘信息
    
  • DataNode

    1、DataNode是具体存数据的,HDFS所有真实数据都在DataNode存储
    2、各个DataNode隔一段时间向NameNode汇报自己的Block信息和磁盘信息
    3、Client在上传和下载文件时,和NameNode交流之后,真实的数据上传和下载是在Client和DataNode之间
    
  • SecondaryNameNode

    辅助NameNode进行元数据管理,将NameNode内存中元数据保存到硬盘上
    
HDFS的切片机制
1、Client在向HDFS上进行存储时,Client会将文件进行切片,每一个切片最大128M,切片又被称为Block,逻辑单位
2、我们也可以自定义每一个BLock的大小,参数位于hdfs-site.xml中:dfs.blocksize。默认大小是128M(134217728字节)
2、举例:一个文件300M,切分成3个Block:Block1-128M  Block2-128M  Block3-44M
HDFS的副本机制
1、HDFS默认每一个Block是3个副本,我们也可以修改该值,在hdfs-site.xml中:dfs.replication参数
2、HDFS在存放每一个Block的3个副本时,有一个放置策略
3、HDFS副本的数量必须小于等于集群主机的数量:3台主机,不能设置4个副本

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

HDFS的名称空间
用来标识存放在HDFS上的每一个文件的路径,有两种写法:
写法1:/dir/a.txt                     #只能用于在集群内部的访问
写法2: hdfs://node1:8020/dir/a.txt    #在任何地方都可以访问
HDFS的元数据
1、HDFS上每一个文件的信息都是元数据,这个元数据不是文件的内容,而是描述文件特征的信息
-rw-r--r--	root	supergroup	39 B	Sep 06 21:31	3	128 MB	a.txt
HDFS的安全模式
1、启动HDFS时,HDFS会自动进入安全模式,在安全模式完成Block的自我自测和自我修复
2、当发现HDFS的副本率达到99.9%,HDFS会自动离开安全模式
3、HDFS进入安全模式之后,用户只能查看HDFS文件内容,不能对HDFS文件进行增删改
4、安全模式的手动操作命令

hdfs  dfsadmin -safemode  get   #查看安全模式状态
hdfs  dfsadmin -safemode  enter #手动进入安全模式
hdfs  dfsadmin -safemode  leave #手动离开安全模式
hdfs  dfsadmin -safemode  forceExit #强制手动离开安全模式
HDFS的Shell命令
  • 格式
hdfs dfs  ...   #只能用于HDFS文件系统,专门用来操作HDFS的
hadoop fs ...   #可以用于多种文件系统,不仅可以操作HDFS,也可以操作其他文件系统,文件系统通用的操作命令
  • 操作
#1、查看指定路径的当前目录结构
hadoop fs -ls /
hdfs dfs  -ls /

#2、递归查看指定路径的目录结构
hadoop fs -lsr /   #已淘汰
hadoop fs -ls -R /  #用这个

#3、查看目录下文件的大小
hadoop fs -du -h /

#4、文件移动(HDFS之间)
hadoop fs -mv /a.txt /dir

#5、文件复制(HDFS之间)
hadoop fs -cp /dir/a.txt /dir/b.txt

#6、删除操作   !!!!!!!!!!!!!!!!!!
hadoop fs -rm /dir/b.txt  #删文件
hadoop fs -rm -r /dir     #删目录

#7、文件上传(本地文件系统到HDFS文件系统)  --- 复制操作   !!!!!!!!!!!!
hadoop fs -put a.txt /dir 

#8、文件上传(本地文件系统到HDFS文件系统)  --- 剪切操作
hadoop fs -moveFromLocal test1.txt /

#8、文件下载(HDFS文件系统到本地文件系统)   !!!!!!!!!!!
hadoop fs -get /aaa.txt  /root 

#9、文件下载(HDFS文件系统到本地文件系统)
hadoop fs -getmerge /dir/*.txt /root/123.txt 

#10、查看HDFS文件内容
hadoop fs -cat /dir/1.txt

#11、在HDFS创建文件夹     !!!!!!!!!!!!
hadoop fs -mkdir /my_dir

#12、修改HDFS文件的权限
hadoop fs -chmod -R 777 /dir
HDFS的读写流程
  • 写流程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ThU5aEFq-1663573160534)(…/图片/1-HDFS的写数据流程.jpg)]

1、客户端向NameNode发送上传请求
2、NameNode经过一个权限检查,如果没有问题,想客户端返回一个主机列表
3、客户端对文件进行切片,然后和这些主机建立通信,分别上传一个个的Block
4、当所有的Block的上传完毕,客户端向NameNode汇报上传情况,NameNode更新元数据
  • 读流程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KqLMygY2-1663573160535)(…/图片/2-HDFS的读文件流程.bmp)]

1、客户端向NameNode发起下载请求
2、NameNode经过权限检查,如果没有问题则向客户端返回文件的Block位置信息
3、客户端根据位置信息分别和对应的主机建立通信
4、客户端读取每一个Bock数据,并将这些Block数据进行拼接,形成一个完整的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值