赞
踩
一、介绍
可以通过许多不同的方式从应用程序访问HDFS。在本地,HDFS为应用程序提供了一个文件系统Java API。这个Java API和REST API的C语言包装也是可用的。此外,还可以使用HTTP浏览器来浏览HDFS实例的文件。通过使用NFS网关,可以将HDFS作为客户机本地文件系统的一部分进行安装。
使用 hadoop fs 命令可以直接操作 hdfs里面的文件,这些操作很类似 linux 的操作。
二、FS SHELL
HDFS允许用户数据以文件和目录的形式进行组织。它提供了一个名为FS shell的commandline接口,它允许用户与HDFS中的数据进行交互。这个命令集的语法类似于其他用户已经熟悉的shell(如bash、csh)。以下是一些示例操作/命令对:
说明 | 命令 |
---|---|
创建目录名 /foodir | bin/hadoop dfs -mkdir /foodir |
删除目录名 /foodir | bin/hadoop fs -rm -R /foodir |
查看/foodir/myfile.txt文件内容 | bin/hadoop dfs -cat /foodir/myfile.txt |
FS shell 的内容比较多,可以参考:http://hadoop.apache.org/docs/r3.0.0-alpha4/hadoop-project-dist/hadoop-common/FileSystemShell.html
二、DFSAdmin
他的DFSAdmin命令集用于管理HDFS集群。这些命令只能由HDFS管理员使用。以下是一些示例操作/命令对:
说民 | 命令 |
---|---|
设置集群为安全模式 | bin/hdfs dfsadmin -safemode enter |
查看DataNodes的说明报告 | bin/hdfs dfsadmin -report |
重新校验或解除DataNode(s) | bin/hdfs dfsadmin -refreshNodes |
三、浏览接口
典型的HDFS安装配置一个web服务器,通过一个可配置的TCP端口来公开HDFS命名空间。这允许用户浏览HDFS名称空间,并使用web浏览器查看其文件的内容。
四、空间回收
1、文件删除和恢复
如果启用了垃圾配置,那么通过FS Shell删除的文件不会立即从HDFS中删除。相反,HDFS将它移动到一个垃圾目录(每个用户都有自己的垃圾目录下/用户/用户名/.Trash)。只要文件还在垃圾中,文件就可以迅速恢复。
最近删除的文件被移动到当前的垃圾目录(/用户/用户名/.trash/current),并且在一个可配置的时间间隔内,HDFS在当前的垃圾目录中创建检查点(在/用户/用户名/.Trash/<date>),并在过期时删除旧的检查点。请参阅FS shell关于清除垃圾的命令。
在垃圾结束后,NameNode从HDFS名称空间中删除了文件。文件的删除会导致与该文件相关的块被释放。注意,在一个用户删除文件和在HDFS中相应增加空闲空间的时间之间,可能会有一个明显的时间延迟。
下面是一个示例,它将展示如何通过FS Shell将文件从HDFS中删除。我们在删除目录下创建了两个文件(test1和test2)
$ hadoop fs -mkdir -p delete/test1 $ hadoop fs -mkdir -p delete/test2 $ hadoop fs -ls delete/ Found 2 items drwxr-xr-x - hadoop hadoop 0 2015-05-08 12:39 delete/test1 drwxr-xr-x - hadoop hadoop 0 2015-05-08 12:40 delete/test2我们将删除文件test1。下面的注释显示该文件已被移动到垃圾目录。
$ hadoop fs -rm -r delete/test1 Moved: hdfs://localhost:9820/user/hadoop/delete/test1 to trash at: hdfs://localhost:9820/user/hadoop/.Trash/Current
现在,我们将使用skip垃圾箱选项删除该文件,该选项不会将文件发送到垃圾。它将完全从HDFS中删除。
$ hadoop fs -rm -r -skipTrash delete/test2 Deleted delete/test2
我们现在可以看到,垃圾目录只包含文件test1。
$ hadoop fs -ls .Trash/Current/user/hadoop/delete/ Found 1 items\ drwxr-xr-x - hadoop hadoop 0 2015-05-08 12:39 .Trash/Current/user/hadoop/delete/test1
因此,文件test1将被删除,文件test2被永久删除。
2、降低复制因子
当文件的复制因子减少时,NameNode会选择可以删除的多余副本。下一个心跳将这些信息传输到DataNode。然后DataNode删除相应的块,并在集群中显示相应的空闲空间。再一次,在setrepapi调用的完成和集群中的空闲空间的出现之间可能会有一段时间延迟。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。