HDFS:Hadoop Distributed File System 分布式文件系统,其操作方式与linux相似,使用指令之前要在前面加上dfs。(注意:hdfs没有当前目录的概念,不能使用cd命令)
常规操作命令:
dfs -put ../hello hello
dfs -ls
dfs -get hello ./mypath/hello
dfs -rmr hello
dfs -cat part-r-00000 //打开文件,查看内容
dfsadmin -report //hdfs的信息情况
客户端如何从HDFS上获取文件呢?以获取文件名为“hello”的文件为例:
客户端向nameNode发起请求,询问“hello”文件的位置信息。
namenode将查询出的位置信息列表清单返回给客户端。
客户端根据清单去连接目标dataNode,获取文件、数据。
有趣的是:HDFS集群的出错是常态的,也是正常的。因此,HDFS会做冗余数据,冗余份数可以在hdfs-site.xml文件中设置复制因子来指定副本数量,一般3份。
HDFS在复制冗余因子时,使用到了机架感知和心跳机制:
机架感知:以3份副本为例:一般在本机架存放一个副本,其他机架存放一个副本。
心跳机制:nameNode与dataNode之间周期性的接收心跳信号,对于没有按时发送心跳的dataNode会被标记为宕机,踢出Hadoop集群。hadoop会在系统不太繁忙时,重新复制缺少的副本。
回收站
当删除一个文件时,物理上并没有被真正删除,这个文件块是可以被快速恢复的。回收站的文件经过一段时间后,文件会被永久删除。这个时间段是可配置的。注意:回收站使用前需要先打开。