关于命令的说明
关于HDFS的文件操作,主要使用以下3个命令:
- hadoop fs {args}
- ~~hadoop dfs {args} ~~ //已经废弃了
- hdfs dfs {args}
其中命令2已经废弃,大家不要再使用了。fs和dfs的区别简要说一下,fs属于一个更抽象的概念,可以操作任何文件系统;而dfs只能操作HDFS文件系统相关(包括与Local FS间的操作)。** 比如,Hadoop本地模式中fs是local file system,这个时候dfs就不能用,只能用fs。**
- 列出HDFS上的文件
hadoop fs -ls 路径
在这里需要注意:在HDFS中未带参数的"-ls"命名没有返回任何值,它默认返回HDFS的"home"目录下的内容。在HDFS中,没有当前目录这样一个概念,也没有cd这个命令。
- 列出HDFS上的文件(递归)
hadoop fs -ls -R 路径
- 上传文件到HDFS
此处为你展示如何通过"-put 文件1 文件2"命令将"Master.Hadoop"机器下的"/home/hadoop"目录下的file文件上传到HDFS上并重命名为test
hadoop fs –put ~/file test
在执行"-put"时只有两种可能,即是执行成功和执行失败。在上传文件时,文件首先复制到DataNode上。只有所有的DataNode都成功接收完数据,文件上传才是成功的。其他情况(如文件上传终端等)对HDFS来说都是做了无用功。
- 将HDFS中文件复制到本地系统中
此处为你展示如何通过"-get 文件1 文件2"命令将HDFS中的"output"文件复制到本地系统并命名为"getout"
hadoop fs –get output getout
- 删除HDFS下的文档
此处为你展示如何删除用户home目录下的output文件夹
hadoop fs –rm -r output
- 查看HDFS下某个文件
此处为你展示如何通过"-cat 文件"命令查看HDFS下input文件中内容
hadoop fs -cat input/*
- 查看HDFS状态
这个当然不算文件操作了,当时是比较常用的命令,可以查看有哪些datanode,并且每个datanode的情况
hadoop dfsadmin -report
网友评论