学科分类
目录
Hadoop技术栈

HDFS Shell介绍

Shell在计算机科学中俗称“壳”,是提供给使用者使用界面的进行与系统交互的软件,通过接收用户输入的命令执行相应的操作,Shell分为图形界面Shell和命令行式Shell。

HDFS Shell包含类似Shell的命令,示例如下:

hadoop fs <args>

hadoop dfs <args>

hdfs dfs <args>

上述命令中,“hadoop fs”是使用面最广,可以操作任何文件系统,如本地系统、HDFS等,“hadoop dfs”则主要针对HDFS文件系统,已经被“hdfs dfs”代替。

文件系统(FS)Shell包含了各种的类shell的命令,可以直接与Hadoop分布式文件系统以及其他文件系统进行交互,如与Local FS、HTTP FS、S3 FS文件系统交互等。通过命令行的方式进行交互,具体操作常用命令,如表1所示。

表1 HDFS Shell参数

命令参数 功能描述
-ls 查看指定路径的目录结构
-du 统计目录下所有文件大小
-mv 移动文件
-cp 复制文件
-rm 删除文件/空白文件夹
-put 上传文件
-cat 查看文件内容
-text 将源文件输出为文本格式
-mkdir 创建空白文件夹
-help 帮助

从表3-1可以看出,HDFS支持的命令行很多,但这里只列举常用的一部分,如果需要了解全部命令或使用过程中遇到问题都可以使用“hadoop fs –help”命令获取帮助文档,也可以通过Hadoop官方文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html学习,接下来对这些常用的命令进行操作演示。

1.ls命令

ls命令用于查看指定路径的当前目录结构,类似于Linux系统中的ls命令,其语法格式如下:

hadoop fs –ls [-d] [-h] [-R] <args>

其中,各项参数说明如下:

l -d:将目录显示为普通文件。

l -h:使用便于操作人员读取的单位信息格式。

l -R:递归显示所有子目录的信息。

示例代码如下:

$ hadoop fs -ls /

上述示例代码,执行完成后会展示HDFS根目录下的所有文件及文件夹,如图1所示。

img

图1 ls命令效果

2.mkdir命令

mkdir命令用于在指定路径下创建子目录,其中创建的路径可以采用URI格式进行指定,与Linux命令mkdir相同,可以创建多级目录,其语法格式如下:

hadoop fs –mkdir [-p] <paths>

其中-p参数表示创建子目录使先检查路径是否存在,如果不存在,则创建相应的各级目录。

示例代码如下:

$ hadoop fs -mkdir -p /itcast/hadoop

上述示例代码,是在HDFS系统的根目录下创建“itcast/hadoop”层级文件夹,“-p”参数表示递归创建路径中的各级目录。执行命令后效果如图2所示。

img

图2 mkdir命令效果

3.put命令

put命令用于将本地系统的文件或文件夹复制到HDFS系统上去,其语法格式如下:

hadoop fs -put [-f] [-p] <locationsrc> <det>

其中各项说明如下:

  • -f:覆盖目标文件
  • -p:保留访问和修改时间、权限

示例代码如下:

$ hadoop fs -put -f install.log /

上述指令执行成功后查询HDFS根目录效果如图3所示。

img

图3 put命令效果

点击此处
隐藏目录