体系结构
HDFS支持主从结构,主节点称为NameNode,是因为主节点上运行的有NameNode进程,NameNode支持多个,目前我们的集群中只配置了一个
从节点称为DataNode,是因为从节点上面运行的有DataNode进程,DataNode支持多个,目前我们的集群中有两个
HDFS中还包含一个SecondaryNameNode进程,这个进程从字面意思上看像是第二个NameNode的意思,其实不是,一会我们会详细分析。
在这大家可以这样理解:
公司BOSS:NameNode
秘书:SecondaryNameNode
员工:DataNode
NameNode介绍
NameNode是整个文件系统的管理节点;
它主要维护着整个文件系统的文件目录树,文件/目录的信息和每个文件对应的数据块列表,并且还负责接收用户的操作请求;
-
文件/目录的信息:表示文件/目录的的一些基本信息,所有者属组修改时间文件大小等信息
-
每个文件对应的数据块列表:如果一个文件太大,那么在集群中存储的时候会对文件进行切割,这个时候就类似于会给文件分成一块一块的,存储到不同机器上面。所以HDFS还要记录一下一个文件到底被分了多少块,每一块都在什么地方存储着
-
接收用户的操作请求:其实我们在命令行使用hdfs操作的时候,是需要先和namenode通信才能开始去操作数据的。
HDFS的回收站
HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户在Shell命令行删除的文件/目录,会进入到对应的回收站目录中,在回收站中的数据都有一个生存周期,也就是当回收站中的文件/目录在一段时间之内没有被用户恢复的话,HDFS就会自动的把这个文件/目录彻底删除,之后,用户就永远也找不回这个文件/目录了。
默认情况下hdfs的回收站是没有开启的,需要通过一个配置来开启,在core-site.xml中添加如下配置,value的单位是分钟,1440分钟表示是一天的生存周期
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
修改主节点,然后同步到从节点,重启生效
scp -rq core-site.xml bigdata02:/home/software/hadoop-3.2.0/etc/hadoop/
scp -rq core-site.xml bigdata03:/home/software/hadoop-3.2.0/etc/hadoop/
HDFS的安全模式
在集群每次重新启动的时候,HDFS都会检查集群中文件信息是否完整,例如副本是否缺少之类的信息,所以这个时间段内是不允许对集群有修改操作的,如果遇到了这个情况,可以稍微等一会,等HDFS自检完毕,就会自动退出安全模式。
on表示处于安全模式,of表示安全模式已结束.
获取安全模式:hdfs dfsadmin -safemode get
快速离开安全模式:hdfs dfsadmin -safemode leave