常用命令:
hdfs帮助:-help [cmd] 显示命令的帮助信息
[user@hadoop01 ~]$ hdfs dfs -help ls
1. hadoop fs (hdfs dfs) 文件操作
1)ls - 查看hdfs中的目录信息
[user@hadoop01 ~]$ hdfs dfs -ls -h /hdfs路径
显示目录下的所有文件可以加 -R 选项
[user@hadoop01 ~]$ hdfs dfs -ls -R /hdfs路径
2)mkdir - 创建文件夹或文件
[user@hadoop01 ~]$ hdfs dfs -mkdir /testEason
创建多级目录加上 –p
[user@hadoop01 ~]$ hdfs dfs -mkdir -p /testEason/test/path
3)touchz - 创建一个hdfs空文件
[user@hadoop01 ~]$ hdfs dfs -touchz /testEason/test.txt
4)cat | tail - 查看文件内容
[user@hadoop01 ~]$ hdfs dfs -cat /testEason/test.txt [user@hadoop01 ~]$ hdfs dfs -tail -f /testEason/test.txt
5)mv | rm - 移动或删除文件
用法:hdfs dfs -mv URI [URI ...] <dst> 或 hdfs dfs -rm [-f] [-r |-R] [-skipTrash] URI [URI ...]
[user@hadoop01 ~]$ hdfs dfs -mv /testEason/test01 /testEason/test [user@hadoop01 ~]$ hdfs dfs -rm /testEason/test.txt
删除文件夹加上 -r
[user@hadoop01 ~]$ hdfs dfs -rm -r /testEason/test/path
6)put - 将本地的文件上传(复制)到HDFS是dst目录下
用法: hdfs dfs -put <localsrc> ... <dst>
[user@hadoop01 ~]$ hdfs dfs -put /本地文件 /hdfs路径 [user@hadoop01 ~]$ hdfs dfs -put localfile /user/hadoop/testEason [user@hadoop01 ~]$ hdfs dfs -put localfile1 localfile2 /user/hadoop/testEason [user@hadoop01 ~]$ hdfs dfs -put localfile hdfs://nn.example.com/hadoop/testEason
moveFromLocal - 类似于put命令,和put命令不同的是,该操作是移动(意思就是localfile将被删除)
用法:hdfs dfs -moveFromLocal <localsrc> <dst>
[user@hadoop01 ~]$ hdfs dfs -moveFromLocal localfile /user/hadoop/testEason
copyFromLocal - 类似于put命令,和put命令不同的是,拷贝的源地址必须是本地文件地址
用法:hdfs dfs -copyFromLocal <localsrc> URI
-f 参数选项:当拷贝的目标文件存在时,进行覆盖
[user@hadoop01 ~]$ hdfs dfs -copyFromLocal localfile.txt /user/hadoop/testEason/test.txt copyFromLocal: `/test.txt': File exists [user@hadoop01 ~]$ hdfs dfs -copyFromLocal -f localfile.txt /user/hadoop/testEason/test.txt
7)cp - 拷贝,HDFS文件系统中进行的拷贝操作,将文件从源路径复制到目标路径;这个命令允许有多个源路径,此时目标路径必须是一个目录
用法:hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
-f 参数选项:当文件存在时,进行覆盖
-p 参数选项:将权限、所属组、时间戳、ACL以及XAttr等也进行拷贝
[user@hadoop01 ~]$ hdfs dfs -cp -p /tmp/fan /tmp/testEason
8)get - 从HDFS上拷贝文件到本地
用法:hdfs dfs -get [-ignorecrc] [-crc] <src> <localdst>
-ignorecrc 参数选项:复制CRC校验失败的文件
-crc 参数选项:复制文件以及CRC信息
[user@hadoop01 ~]$ hdfs dfs -get /user/hadoop/file localfile [user@hadoop01 ~]$ hdfs dfs -get hdfs://nn.example.com/user/hadoop/file localfile
copyToLocal - 类似于get指令。和get命令不同的是,拷贝的目的地址必须是本地文件地址
用法: hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
[user@hadoop01 ~]$ hdfs dfs -copyToLocal /word /usr/eason/temp/word.txt
9)appendToFile - 是将一个或者多个文件添加到HDFS系统中
用法: hdfs dfs -appendToFile <localsrc> ... <dst>
[user@hadoop01 ~]$ hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile [user@hadoop01 ~]$ hdfs dfs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile [user@hadoop01 ~]$ hdfs dfs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.
10)chmod - 改变文件访问权限,参考Linux命令
用法:hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
-R 参数选项:将使改变在目录结构下递归进行;命令的使用者必须是文件的所有者或者超级用户;
11)du - 显示目录中所有文件的大小
用法:hdfs dfs -du URI [URI …]
-s 参数选项:显示当前目录或者文件夹的大小
[user@hadoop01 ~]$ hdfs dfs -du -s /
12)df - 显示剩余空间
用法:hdfs dfs -df [-h] URI [URI ...]
[user@hadoop01 ~]$ hdfs dfs -df /
13)checksum - 查看校验码信息
用法: hdfs dfs -checksum URI
[user@hadoop01 ~]$ hdfs dfs -checksum hdfs://nn1.example.com/file1 [user@hadoop01 ~]$ hdfs dfs -checksum file:///etc/hosts
14)chgrp - 改变文件所属的组(Change group association of files.)
用法: hdfs dfs -chgrp [-R] GROUP URI [URI ...]
-R 参数选项:将使改变在目录结构下递归进行;命令的使用者必须是文件的所有者或者超级用户
[user@hadoop01 ~]$ hdfs dfs -chgrp -R test /a
15)chown - 改变文件的所有者
用法:hdfs dfs -chown [-R] [OWNER][:[GROUP]] URI [URI]
-R 参数选项:将使改变在目录结构下递归进行;命令的使用者必须是超级用户
[user@hadoop01 ~]$ hdfs dfs -chown -R test /a
16)count - 计算paths下的目录数,文件数和字节数
用法:hdfs dfs -count [-q] [-h] [-v] <paths>
[user@hadoop01 ~]$ hdfs dfs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2 [user@hadoop01 ~]$ hdfs dfs -count -q -h -v hdfs://nn1.example.com/file1
17)expunge - 从垃圾桶目录永久删除超过保留阈值的检查点中的文件,并创建新检查点
用法:hdfs dfs -expunge
18)find - 查找满足表达式的文件和文件夹,没有配置path的话,默认的就是全部目录/;如果表达式没有配置,则默认为 -print
用法: hdfs dfs -find <path> ... <expression> ...
-name pattern 参数选项:所要查找文件的文件名
-iname pattern 参数选项:所要查找的文件名,不区分大小写
-print 参数选项:打印
-print0 参数选项:打印在一行,如下图所示
[user@hadoop01 ~]$ hdfs dfs -find /usr/hadoop/testEason -name test -print
19)getmerge - 是将HDFS上一个目录中所有的文件合并到一起输出到一个本地文件上
用法:hdfs dfs -getmerge [-nl] <src> <localdst>
[user@hadoop01 ~]$ hdfs dfs -getmerge -nl /src /opt/output.txt [user@hadoop01 ~]$ hdfs dfs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt
20)test - 判断文件信息
用法:hadoop fs -test -[defsz] URI
-d 参数选项:如果路径是一个目录,返回0
-e 参数选项:如果路径已经存在,返回0
-f 参数选项:如果路径是一个文件,返回0
-s 参数选项:如果路径不是空,返回0
-z 参数选项:如果文件长度为0,返回0
URI 参数选项:资源地址,可以是文件也可以是目录。
[user@hadoop01 ~]$ hdfs dfs -test -e filename
2. hdfs dfsadmin 管理命令
1) report - 查看文件系统的基本信息和统计信息
[user@hadoop01 ~]$ hdfs dfsadmin -report
2) safemode - 安全模式命令;安全模式是NameNode的一种状态,在这种状态下,NameNode不接受对名字空间的更改(只读),不复制或删除块;NameNode在启动时自动进入安全模式,当配置块的最小百分数满足最小副本数的条件时,会自动离开安全模式
enter 参数选项:enter是进入
leave 参数选项:leave是离开
[user@hadoop01 ~]$ hdfs dfsadmin -safemode get [user@hadoop01 ~]$ hdfs dfsadmin -safemode enter
3) refreshNodes - 重新读取hosts和exclude文件,使新的节点或需要退出集群的节点能够被NameNode重新识别(新增节点或注销节点时用到)
[user@hadoop01 ~]$ hdfs dfsadmin -refreshNodes
4) finalizeUpgrade - 终结HDFS的升级操作
5) upgradeProgress -
status 参数选项:请求当前系统的升级状态
details 参数选项:升级状态的细节
force 参数选项:强制升级操作
6) help - 显示帮助信息