Hadoop Hdfs常用命令

常用命令:

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 - 显示帮助信息

 

 

 

 

  

上一篇:android intent打开各种文件(txt、apk、ppt,面试官不讲武德


下一篇:C#获取http图片