当前位置: 代码迷 >> 综合 >> Hadoop FS Shell常用命令
  详细解决方案

Hadoop FS Shell常用命令

热度:13   发布时间:2023-12-04 19:41:20.0

1.调用Hadoop的文件系统Shell(FileSystem Shell)的命令格式:

语法:hadoop fs <args>:前提是位置位于hadoop/bin下,其中fs是参数,表示FS Shell,<args>是fs的子命令

2.使用FS Shell命令行管理文件:

mkdir  -创建目录

语法:hadoop fs -mkdir <paths>
例子:
hadoop fs -mkdir /user:在HDFS中创建"/user"目录hadoop fs -mkdir /user/hadoop:在HDFS中创建"/user/hadoop"目录hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2:在HDFS中同时创建"/user/hadoop/dir1"和"/user/hadoop/dir2",目录

ls -查看列表文件

语法:hadoop fs -ls <args>
如果是文件,则按照如下格式返回文件信息:
文件名<副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID如果是目录,则返回它直接子文件的一个列表

cat -查看文件

语法:hadoop fs -cat URI <URI...>:输出路径指定文件的内容
例子:
hadoop fs -cat /input2/file1.txt  /input2/file2.txt:在HDFS中查看input2目录下的file1.txt和file2.txt的文件内容

put -从本地文件系统中复制一个或多个文件到HDFS(外部命令)

语法:hadoop fs -put <localsrc>...<dst>
其中localsrc只能是本地文件,dst只能是HDFS文件,且不受fs.defaultFS属性影响。例子:
hadoop fs -put /home/hduser/file/file1.txt /input2
-将本地文件复制到HDFS目录"input2"hadoop fs -put /home/hduser/file/file1.txt /home/hduser/file/file2.txt /input2
-将多个本地文件复制到HDFS目录"input2"hadoop fs -put - /input2/file3
-从标准输入中读取输入,按Ctrl+C组合键退出并保存到"file3"

get -复制HDFS文件到本地系统(外部命令,是put命令的逆操作)

语法:hadoop fs -get <src><localdst>
其中src只能是HDFS文件,localdst只能是本地文件,且同样不受fs.defaultFS属性影响例子:
hadoop fs -get /input2/file1.txt /sa/file
-将HDFS目录"input2"下的file1.txt文件复制到本地系统目录"sa"下的file文件夹中

mv -移动、剪切命令

语法:hadoop fs -mv URI [URI...] <dest>:将文件从源路径移动到目标路径,允许多个源路径,目标路径必须是一个目录例子:
hadoop fs -mv /input2/file1.txt /input2/file2.txt /user/hadoop/dir1
-将HDFS上"input2"文件夹中的file1.txt和file2.txt文件移动到"/user/hadoop/dir1"文件夹中

cp -复制命令

语法:hadoop fs -cp URI [URI...] <dest>:将文件从源路径复制到目标路径,允许多个源路径,目标路径必须是一个目录

例子:
hadoop fs -cp /input2/file1.txt /input2/file2.txt /user/hadoop/dir1
-将HDFS上"input2"文件夹中的file1.txt和file2.txt文件复制到"/user/hadoop/dir1"文件夹中

rm、rmr -删除文件

1.rm命令
语法:hadoop fs -rm URI [URI...]
删除指定的文件,只删除非空目录和文件例子:
hadoop fs -rm /input2/file1.txt
-在HDFS中删除input2文件夹下的file1.txt文件2.rmr命令
语法:hadoop fs -rmr URI [URI...]
rm的递归版本,整个文件夹及子文件将全部删除
例子:
hadoop fs -rmr /user/hadoop/dir1
-在HDFS中直接删除" /user/hadoop/dir1"路径中dir1文件夹及该文件夹中的子文件

test、du、expubge -管理命令

1.test命令
语法:hadoop fs -test -[选项] URI
选项:-e:检查文件是否存在,如果存在则返回0,不存在返回1;-z:检查文件是否存在内容,有内容返回1,没有内容返回0(检查文件的大小是否是0字节,文件大小是0字节返回0,不是0字节返回1);-d:检查路径是否为目录,如果是则返回1,不是则返回0.例子:
hadoop fs -test -e /input2/file1.txt 
-检查文件是否存在
echo $?   -#"$?"是Linux变量,存储上一条命令的返回值,"echo $?"表示输出命令行返回的数值。2.du命令
语法:hadoop fs -du URI [URI...]
-显示目录中所有文件的大小例子:
hadoop fs -du /input2
-在HDFS中显示input2文件夹的大小,如果是目录则列出所有文件及其大小hadoop fs -du /input2/file1.txt
-在HDFS中显示input2文件夹下fil1.txt文件的大小,如果是目录则统计总大小3.expunge命令
语法:hadoop fs -expunge
-清空回收站

以上只介绍了部分常用命令,更多命令可查阅Hadoop帮助文档,获取位置:

$Hadoop_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-common/FileSystemShell.html


  相关解决方案