ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop Hdfs常用命令

2021-10-27 10:36:05  阅读:346  来源: 互联网

标签:选项 hdfs Hdfs hadoop01 Hadoop dfs URI user 常用命令


常用命令:

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

 

 

 

 

  

标签:选项,hdfs,Hdfs,hadoop01,Hadoop,dfs,URI,user,常用命令
来源: https://www.cnblogs.com/ctt-freedom/p/15429362.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有