目录
#博学谷IT学习技术支持#
HDFS的NameSpace
- 什么事实NameSpace呢?
命名空间也就是HDFS会给每一个存储文件提供一个统一的访问路径
#格式
hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。
#使用绝对前缀方式
hdfs://node1:8020/dir/1.txt
hadoop fs -put 1.txt hdfs://node1:8020/dir
#使用相对前缀方式
/dir/1.txt
hadoop fs -put 1.txt /dir
HDFS的元数据
在HDFS中,NameNode管理的元数据具有两种类型:
- 自身文件的属性信息
文件的名称、权限、修改时间、文件大小、副本数,数据块大小。
- 文件位置的映射信息
记录文件块和DataNode之间的映射信息,例如标明某一个数据块存在的具体节点
HDFS的机架感知
- 第一个Block副本会存储在离你的客户端最近的位置,如果你所操作的客户端就是集群里面的主机,那么他会直接选取这台主机。如果客户端不在该集群范围内或者不在一个子网上面,那么这次选取就和前面的不一样了,它会从集群中随机选取一个机架,在这个机架上选取一台健康(就是心跳正常,虚拟机的硬盘正常)的主机,将这个Block存入。
- 第二个block的副本则会存入另外一个机架 也是随机选择,找到一台健康的主机,存入该Block
- 第三个block就不太一样了,他会选择和第二个Block在同一个机架上,随后选择一个健康的主机,将这个Block存入。
HDFS的安全模式
概述
- 什么是安全模式呢?
安全模式是Hadoop的一种保护机制,主要用来保护数据的安全性。
安全模式
- 安全模式是怎样触发的呢?
在Hadoop集群刚刚启动的时候,它会自动的进入到该模式中,用于检测我们数据块的完整性。
在安全模式下,HDFS主要做哪些事情?
-
DataNode会将自己的Block信息汇报给NameNode
-
NameNode会检查副本率(实际的副本数/理论的副本数)是否达到 0.9990 ,如果没有达到,则会进行副本的动态调整,如果副本率满足了需求之后,则默认在20多秒之后自动关闭安全模式。
非安全模式
特点
当处于该模式下,我们只能执行读操作(查看文件信息、路径等),不能执行写操作(文件的删除、添加),在整个集群到达安全标准的时候,HDFS会自动离开安全模式。
操作命令
- 当然我们也可以自己做这些操作
hdfs dfsadmin -safemode get #查看安全模式状态
hdfs dfsadmin -safemode enter #进入安全模式
hdfs dfsadmin -safemode leave #离开安全模式
HDFS的读写流程
写流程
①来源于讲师
读数据
②来源于讲师
HDFS的远程拷贝命令
#格式
scp -r local_folder remote_username@remote_ip:remote_folder
-r表示拷贝是的目录
#推送
scp -r /root/dir root@node2:/root #指定远程访问的用户身份
scp -r /root/dir node2:/root #简化写法:默认以root用户身份访问
#拉取
scp -r root@node1:/root/dir /root #把远端的文件拉取到本地
#跨集群的数据拷贝
hadoop distcp hdfs://node1:8020/jdk-8u241-linux-x64.tar.gz hdfs://node10:8020/
小结
HDFS的读写流程很重要,如果理解透彻,那么底层原理对于你来说就很容易理解了。