目录
一、HDFS的shell介绍
- Shell在计算机科学中俗称“壳”,是提供给使用者使用界面的进行与系统交互的软件,通过接收用户输入的命令执行相应的操作,Shell分为图形界面Shell和命令行式Shell。
- 文件系统(FS)Shell包含了各种的类Shell的命令,可以直接与Hadoop分布式文件系统以及其他文件系统进行交互。
二、HDFS常用Shell命令
1、三种Shell命令方式
命令 | 适用场合 |
hadoop fs | 适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 |
hadoop dfs | 只能适用于HDFS文件系统 |
hdfs dfs | hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统 |
2、常用HDFS的shell命令
命令 | 功能 |
hdfs dfs -ls <path> | 显示<path>指定的文件或目录的详细信息。 |
hdfs dfs -ls -R <path> | ls命令的递归版本。 |
hdfs dfs -cat <path> 将<path> | 指定文件的内容输出到标准输出。 |
hdfs dfs chgrp [-R] group <path> | 将<path>指定文件所属的组改为group,使用-R对<path>指定目录内的文件进行递归操作。这个命令只适合于超级用户。 |
hdfs dfs -chown [-R] [owner][:[group]] <path> | 改变<path>指定文件或目录的拥有者,-R用于递归改变目录内的文件或目录的拥有者。 这个命令只适合于超级用户。 |
hdfs dfs -chmod [-R] <mode> <path> | 将<path>指定文件或目录的权限更改为<mode>。这个命令只适合于超级用户和文件或目录的拥有者。 |
hdfs dfs -tail [-f] <path> 将<path> | 指定文件最后1KB的内容输出到标准输出上,-f选项用于持续检测新添加到文件中的内容。 |
hdfs dfs -stat [format] <path> | 以指定格式返回<path>指定文件的相关信息。当不指定format的时候,返回文件<path>的创建日期。 |
hdfs dfs -touchz <path> | 创建一个<path>指定的空文件。 |
hdfs dfs -mkdir [-p] <paths> | 创建<paths>指定的一个或多个目录,-p选项用于递归创建子目录。 |
hdfs dfs -copyFromLocal <localsrc> <dst> | 将本地源文件<localsrc>复制到路径指定的文件或目录中。 |
hadoo fs -copyToLocal [-ignorcrc] [-crc] <target> <localdst> | 将目标文件<target>复制到本地文件或目录<localdst>中,可用-ignorecrc选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息。 |
hdfs dfs -cp <src> <dst> | 将文件从源路径<src>复制到目标路径<dst>。 |
hdfs dfs -du <path> | 显示<path>指定文件或目录内所有文件的大小。 |
hdfs dfs -expunge | 清空回收站。 |
hdfs dfs -get [-ignorcrc] [-crc] <src> <localdst> | 复制<src>指定的文件到本地文件系统<localdst>指定的文件或目录内,可用-ignorecrc选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息。 |
hdfs dfs -getmerge [-nl] <src> <localdst> 对<src> | 指定目录内所有文件进行合并,写入<localdst>指定的本地文件。-nl是可选的,用于指定在每个文件结尾添加一个换行符。 |
hdfs dfs -put <localsrc> <dst> | 从本地文件系统中复制<localsrc>指定的单个或多个源文件到<dst>指定的目标文件系统中。 |
hdfs dfs moveFromLocal <localsrc> <dst> | 与put命令功能相同,但是文件上传结束后会从本地文件系统中删除<localsrc>指定的文件。 |
hdfs dfs -mv <src> <dst> | 将文件或目录从源路径<src>移到目标路径<dst>。 |
hdfs dfs -rm <path> | 删除<path>指定的文件或目录(非空目录)。 |
hdfs dfs -rm -r <path> | 删除<path>指定的目录及其下的所有文件,-r选项表示递归删除子目录。 |
hdfs dfs -setrep [-R] <path> | 改变<path>指定文件的副本数,-R选项用于递归改变目录下所有文件的副本数。 |
hdfs dfs -test [-ezd] <path> | 检查<path>指定文件或目录的相关信息。 -e (exist)检查文件是否存在,如果存在则返回0,否则返回1 -z (zero)检查文件是否是零字节,如果是则返回0,否则返回1 -d(directory)检查路径是否是目录,如果是则返回0,否则返回1 |
hdfs dfs -text <path> | 指定的文件输出为文本格式,文件格式允许是zip和TextRecordInputStream。 |
三、HDFS常用命令实操
- 启动Hadoop集群
1、创建目录
1.1、创建单层目录
- 执行命令:
hdfs dfs -mkdir /ied
- 利用Hadoop WebUI查看创建的目录
1.2、创建多层目录
- 执行命令:
hdfs dfs -mkdir -p /luzhou/lzy
- 利用Hadoop WebUI查看创建的多层目录
2、查看目录
- 执行命令:
hdfs dfs -ls /
,查看根目录(可以在任何节点上查看,结果都是一样的)
- 执行命令:
hdfs dfs -ls /luzhou