3-Hadoop HDFS

hadoop离线day03--Hadoop HDFS


今日课程学习目标

理解分布式文件存储的概念与实现
掌握HDFS分块存储、副本机制等特性
学会shell操作HDFS
掌握HDFS读写流程
理解NameNode元数据管理机制
理解SecondaryNameNode checkpoint机制

今日课程内容大纲

#HDFS入门
	HDFS介绍
	如何模拟实现分布式文件存储系统? 具备哪些特性。
		分布式、分块存储、副本机制、元数据管理
	HDFS设计目标和重要特性
#HDFS操作
	shell command
#HDFS原理(重中之重)
	工作机制--读写流程  角色之间如何配合的 每个角色承担了什么职责
	NN DN角色职责概述总结
#HDFS辅助功能
	distcp 跨集群复制数据 
	Archive 归档文件  处理小文件
#HDFS元数据管理机制
	namenode如何管理元数据
	secondarynamenode职责
		checkpoint机制
#HDFS安全模式

#理清两个东西  数据data 元数据metadata

知识点01:传统文件系统及其面临的挑战

大数据场景下,传统文件系统如何才能支撑海量数据存储?

知识点02:分布式文件存储系统核心特性与作用

场景互动:如何模拟实现分布式文件系统。

或者说一个成熟的分布式文件系统应该要具备哪些属性、功能呢?


知识点03:Hadoop HDFS--简介

3.1、HDFS基本概念


知识点04:Hadoop HDFS--起源发展和设计目标

HDFS适用场景


知识点05:Hadoop HDFS--核心重要特性解读


知识点06:Hadoop HDFS--shell 操作--命令行功能及使用说明

hadoop  fs <args>  文件系统的路径

#hadoop  fs可以操作的文件系统不仅仅有HDFS,还包括本地文件系统、GFS、TFS。
#如何区分操作访问的是什么文件系统呢?  根据文件系统协议

hadoop fs -ls hdfs://node1:8020/

hadoop fs -ls file:///
hadoop fs -ls gfs://

#如果不写协议 直接/目录 操作访问的是谁?
[root@node1 ~]# hadoop fs -ls /
Found 4 items
drwxr-xr-x   - root supergroup          0 2021-05-23 16:49 /itcast
drwx------   - root supergroup          0 2021-05-23 16:12 /tmp
drwxr-xr-x   - root supergroup          0 2021-05-23 16:12 /user
drwxr-xr-x   - root supergroup          0 2021-05-23 16:16 /wc

#默认是谁,取决于参数fs.defaultFS
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
</property>

#如果fs.defaultFS没有配置  默认的是file:///

#新旧命令  推荐使用hadoop fs
hadoop fs <args> = hdfs dfs <args>

知识点07:Hadoop HDFS--shell 操作--常见命令操作

# 查看指定目录下信息
hadoop fs -ls [-h] [-R] <args>
	-h 人性化显示
	-R 递归显示

#创建文件夹
hadoop fs -mkdir [-p] <paths>
	-p 创建父目录
	
#上传文件
hadoop fs -put src  dst
将单个 src 或多个 srcs 从本地文件系统复制到目标文件系统
	#src代表的是本地目录 所谓的本地指的是客户端所在的机器 
	#dst代表的是HDFS
	-p:保留访问和修改时间,所有权和权限。
	-f:覆盖目的地(如果已经存在)
	
hadoop fs -put file:///root/itcast.txt hdfs://node1:8020/itcast	

hadoop fs -put itcast.txt /itcast

#下载文件
hadoop fs -get  src  localdst
	#将文件复制到本地文件系统。
hadoop fs -get hdfs://node1:8020/itcast/itcast.txt file:///root/
hadoop fs -get /itcast/itcast.txt ./

#追加内容到文件尾部 appendToFile
[root@node3 ~]# echo 1 >> 1.txt
[root@node3 ~]# echo 2 >> 2.txt 
[root@node3 ~]# echo 3 >> 3.txt 
[root@node3 ~]# hadoop fs -put 1.txt /
[root@node3 ~]# hadoop fs -cat /1.txt
1
[root@node3 ~]# hadoop fs -appendToFile 2.txt 3.txt /1.txt
[root@node3 ~]# hadoop fs -cat /1.txt
1
2
3
[root@node3 ~]# 

#追加的用途:把本地的小文件上传中合并成为大文件 解决小文件场景的。

#文件内容的查看
cat 适合小文件
tail 将文件的最后一千字节内容显示到stdout  -f参数支持实时追踪查看

#权限 拥有者 所属组修改

	hdfs在设计的时候 借鉴模仿着linux权限管理模式
	也有所谓的读写执行 user group others  777
chgrp  修改所属组
chmod  修改权限
cgown  修改拥有者

hadoop fs -chmod 755 /1.txt

#文件移动 复制 删除
mv cp 
rm -r递归删除 


#合并下载 getmerge
合并下载多个文件  其功能和appendToFile相反的动作
[root@node3 ~]# hadoop fs -mkdir /small
[root@node3 ~]# hadoop fs -put *.txt /small
[root@node3 ~]# hadoop fs -getmerge /small/* ./merge.txt
[root@node3 ~]# cat merge.txt 

#统计HDFS可用空间  指定目录大小
[root@node3 ~]# hadoop fs -df -h /
Filesystem            Size   Used  Available  Use%
hdfs://node1:8020  111.1 G  5.0 M     98.3 G    0%

#修改文件的副本数
hadoop fs -setrep -w N -R   N就是修改之后的副本数
-w wait等待 修改副本客户端是否等待修改完毕再推出

[root@node3 ~]# hadoop fs -setrep 2 /small/1.txt
Replication 2 set: /small/1.txt

[root@node3 ~]# hadoop fs -setrep -w 2 /small/2.txt
Replication 2 set: /small/2.txt
Waiting for /small/2.txt ...
WARNING: the waiting time may be long for DECREASING the number of replications.
. done

#企业中避免使用setrep修改文件的副本数。
副本的修改操作可能会影响hdfs正常的读写服务请求。
因此在实际工作中 事先根据数据的重要性在上传之前就决定该文件的备份数是多少 避免线上修改。

知识点08:Hadoop HDFS--工作机制--角色与角色职责


知识点09:Hadoop HDFS--工作机制--上传文件流程(写文件流程)

image-20210921162853674.png

知识点10:Hadoop HDFS--工作机制--下载文件流程(读文件流程)

image-20210921162905659.png


知识点11:Hadoop HDFS--工作机制--NN和DN之间的通信机制


知识点12:Hadoop HDFS--辅助工具(distcp、archive)

12.1、跨集群复制数据 distcp(distributed copy)

12.2、文件归档工具 archive


知识点13:Hadoop HDFS--namenode 安全模式


知识点14:Hadoop HDFS--namenode元数据管理机制--整体概述


知识点15:Hadoop HDFS--namenode元数据相关目录文件


知识点16:Hadoop HDFS--SNN概述和checkpoint

![image-20210921163622828](/img/user/czc知识库/计算机/Hadoop技术栈/课程资料笔记/源/hadoop离线day03--Hadoop HDFS/1、笔记、总结/hadoop离线day03--Hadoop HDFS.assets/image-20210921163622828.png)


知识点17:Hadoop HDFS--元数据文件恢复方式


今日作业

#0、分布式文件系统应该具备哪些属性 作用是什么
	分布式特性
	分块存储
	副本机制
	元数据记录
	抽象目录树
		符合人之常情  便于上手使用
	
#1、HDFS原理 读写流程图  自己梳理。
	pipeline ack packet 3副本机制
	
#总结、概况nn dn角色职责
	分布式软件主从配合工作场景。
	大数据存储类软件都是这一个套路。 HBase Kafka ES

#2、HDFS shell基本操作

#3、Archive 归档小文件
	面试:大数据如何处理小文件场景。HDFS   关键:合并
	上传前合并  在本地先把一批小文件合并成为大文件  python、java
	上传过程中合并 appendToFile 追加合并
	上传之后合并 archive 归档
	
#4、HDFS元数据管理机制 SNN功能职责
	内存最新最全
	fsimage editslog
	SNN是NN的备份吗?!!
		是帮助NN合并元数据文件。保证不旧  不大  性能不受影响

#5、HDFS安全模式是什么