hadoop的HDFS的shell命令大全(一篇文章就够了)

HDFS的shell命令

1、安全模式

安全模式:集群启动时,DN所有的DN都必须向MM汇报磁盘使用状态和block存储信息。在此之前出于对hdfs的保护,会禁止访问hdfs,此状态为安全模式

1.查看安全模式状态

#查看安全模式状态
hdfs dfsadmin --safemode get
#-状态-
on|off
#-----

2.手工开启安全模式状态

#手工进入安全模式
hdfs dfsadmin --safemode enter

3.手工关闭安全模式状态

#手工退出安全模式
hdfs dfsadmin --safemode leave

2、文件操作指令

指令的一般格式如下:

hdfs dfs -CMD [-OPTION] [path1] ★★★#使用较多
hadoop fs -CMD [-OPTION] [path1]

1.查看文件目录

#查看指定路径的当前目录结构
hdfs dfs -ls <路径> 
#查看HDFS根目录结构的文件组成
hdfs dfs -ls /
#--------------------------------------------------------------
Found 1 items
drwxrwx---   - root supergroup          0 2021-12-29 08:37 /tmp
#--------------------------------------------------------------
#递归查看指定路径的目录结构
hdfs dfs -ls -R <路径> 
#递归根目录的目录结构
hdfs dfs -lsr /
hdfs dfs -ls -R /
#----------------------------------------------------------------------------------------
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test/kb16
drwxr-xr-x   - root supergroup          0 2021-12-29 12:25 /test/kb16/hadoop
-rw-r--r--   1 root supergroup  678260987 2021-12-29 12:25 /test/kb16/hadoop/ratings.csv
#----------------------------------------------------------------------------------------

2.查看文件夹情况

#统计目录下个文件大小
hdfs dfs -du <路径> 
#统计/test/kb16/hadoop/下文件大小
hdfs dfs -du /test/hadoop/
#--------------------------------------------------
678260987  678260987  /test/hadoop/test1.csv
#--------------------------------------------------
#汇总统计目录下文件(夹)大小
hdfs dfs -du -s <路径> 
#汇总统计目录下文件(夹)大小
hdfs dfs -du -s /
#----------------------
678260987  678260987  /
#----------------------
#统计文件(夹)数量
hdfs dfs -count [-q] <路径> 
#统计文件(夹)数量
#-------------------
10    1  678260987 /
#-------------------

3.文件操作

#移动文件
hdfs dfs -mv <源路径> <目的路径> 
#将ratings.csv移动到/tmp/hadoop-yarn中
hdfs dfs -mv /test/hadoop/ratings.csv /tmp/hadoop-yarn
#--------------------------------------------------------------------------------------
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test/kb16
drwxr-xr-x   - root supergroup          0 2021-12-29 17:41 /test/kb16/hadoop
drwxrwx---   - root supergroup          0 2021-12-29 08:37 /tmp
drwxrwx---   - root supergroup          0 2021-12-29 17:41 /tmp/hadoop-yarn
-rw-r--r--   1 root supergroup  678260987 2021-12-29 12:25 /tmp/hadoop-yarn/ratings.csv
#---------------------------------------------------------------------------------------
#将指定路径文件复制到目标路径
hdfs dfs -cp <源路径> <目的路径> 
#将/test/kb16/hadoop下的ratings.csv复制到test/kb16中
hdfs dfs -cp hdfs dfs -cp /test/hadoop/ratings.csv /test/kb16
#------------------------------------------------------------------------------------
2021-12-29 17:47:27,806 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:27,980 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:28,537 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:29,513 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:30,365 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:31,239 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:32,106 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false /test/kb16
2021-12-29 17:47:27,806 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:27,980 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:28,537 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:29,513 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:30,365 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:31,239 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:32,106 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#------------------------------------------------------------------------------------
#删除文件/空白文件夹
hdfs dfs -rm [-skiptrash] <路径> 
#删除/test/kb16下的ratings.csv
hdfs dfs -rm /test/ratings.csv
#-----------------------------
Deleted /test/ratings.csv
#-----------------------------
#递归删除文件/空白文件夹
hdfs dfs -rmr [-skiptrash] <路径> 

4.上传文件

#上传文件到hadoop中
hdfs dfs  -put <多个linux上的文件> <hdfs路径>
#上传文件到/test/kb16中
hdfs dfs -put ratings.csv /test/
#-------------------------------------------------------------------------------------
2021-12-29 18:07:24,565 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,012 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,257 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,673 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:26,478 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:27,162 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将本地文件移动到hdfs路径上
hdfs dfs -copyfromlocal <多个linux上的文件> <hdfs路径> 
#将本地文件复制到hdfs路径上
hdfs dfs -movefromlocal <多个linux上的文件> <hdfs路径>

5、获取文件

#将hdfs中路径文件下载到本地
hdfs dfs -get <hdfs路径>  <linux路径>
#将hadoop中/test/kb16/hadoop下的ratings.csv下载到根目录中
hdfs dfs -get /test/hadoop/ratings.csv ~/
#-------------------------------------------------------------------------------------
2021-12-29 18:15:14,441 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将hdfs中路径文件合并到本地
hdfs dfs  -getmerge <源路径> <linux路径>
#
hdfs dfs -getmerge /test/hadoop/ratings.csv ratings.csv 
#-------------------------------------------------------------------------------------
2021-12-29 18:18:08,398 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将文件从HDFS中复制到本地
hdfs dfs -copytolocal [-ignorecrc] [-crc] [hdfs源路径] [linux目的路径] 
#将文件从HDFS中移动到本地
hdfs dfs -movetolocal [-crc] <hdfs源路径> <linux目的路径> 从本地移动

6.查看文件内容

#利用管道符进行文件的查看
hdfs dfs -cat path|查询范围
#利用text命令查看文件内容
hdfs dfs -text <hdfs路径> 查看文件内容
#查看文件尾部信息
hdfs dfs -tail [-f] <文件> 
#查看文件头部信息
hdfs dfs  -head [-f] <文件> 

7.创建目录

#创建多级文件目录
hdfs dfs -mkdir -p path1/path2

8.修改副本数量

修改hadoop备份的副本数量,默认是三份

#修改hadoop备份的副本数量
hdfs dfs -setrep [-r] [-w] <副本数> <路径>

9.创建空白文件(不推荐使用)

利用-touchz命令创建空白文件的过程中可能会产生错误,因此不推荐使用这个命令

#在指定路径上创建创建空白文件
hdfs dfs -touchz <文件路径> 

10.显示文件统计信息

#显示文件统计信息
hdfs dfs -stat -stat [format] <路径>
#------------------
2021-12-29 04:25:27
#------------------

11、修改权限

#修改文件权限
hdfs dfs -chmod [-r] <权限模式> [路径]
#修改文件的所有者
hdfs dfs -chown [-r] [属主][:[属组]] 路径 
#修改文件所属的用户组
hdfs dfs -chgrp [-r] 属组名称 路径 

12、查看指令的帮助信息

#查看指令的帮助信息
hdfs dfs -help [命令选项]

1、安全模式

安全模式:集群启动时,DN所有的DN都必须向MM汇报磁盘使用状态和block存储信息。在此之前出于对hdfs的保护,会禁止访问hdfs,此状态为安全模式

1.查看安全模式状态

#查看安全模式状态
hdfs dfsasmin --safemode get
#-状态-
on|off
#-----

2.手工开启安全模式状态

#手工进入安全模式
hdfs dfsasmin --safemode enter

3.手工关闭安全模式状态

#手工退出安全模式
hdfs dfsasmin --safemode leave

2、文件操作指令

指令的一般格式如下:

hdfs dfs -CMD [-OPTION] [path1] ★★★#使用较多
hadoop fs -CMD [-OPTION] [path1]

1.查看文件目录

#查看指定路径的当前目录结构
hdfs dfs -ls <路径> 
#查看HDFS根目录结构的文件组成
hdfs dfs -ls /
#--------------------------------------------------------------
Found 1 items
drwxrwx---   - root supergroup          0 2021-12-29 08:37 /tmp
#--------------------------------------------------------------
#递归查看指定路径的目录结构
hdfs dfs -ls -R <路径> 
#递归根目录的目录结构
hdfs dfs -lsr /
hdfs dfs -ls -R /
#----------------------------------------------------------------------------------------
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test/kb16
drwxr-xr-x   - root supergroup          0 2021-12-29 12:25 /test/kb16/hadoop
-rw-r--r--   1 root supergroup  678260987 2021-12-29 12:25 /test/kb16/hadoop/ratings.csv
#----------------------------------------------------------------------------------------

2.查看文件夹情况

#统计目录下个文件大小
hdfs dfs -du <路径> 
#统计/test/kb16/hadoop/下文件大小
hdfs dfs -du /test/kb16/hadoop/
#--------------------------------------------------
678260987  678260987  /test/kb16/hadoop/ratings.csv
#--------------------------------------------------
#汇总统计目录下文件(夹)大小
hdfs dfs -du -s <路径> 
#汇总统计目录下文件(夹)大小
hdfs dfs -du -s /
#----------------------
678260987  678260987  /
#----------------------
#统计文件(夹)数量
hdfs dfs -count [-q] <路径> 
#统计文件(夹)数量
#-------------------
10    1  678260987 /
#-------------------

3.文件操作

#移动文件
hdfs dfs -mv <源路径> <目的路径> 
#将ratings.csv移动到/tmp/hadoop-yarn中
hdfs dfs -mv /test/kb16/hadoop/ratings.csv /tmp/hadoop-yarn
#--------------------------------------------------------------------------------------
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test
drwxr-xr-x   - root supergroup          0 2021-12-29 10:07 /test/kb16
drwxr-xr-x   - root supergroup          0 2021-12-29 17:41 /test/kb16/hadoop
drwxrwx---   - root supergroup          0 2021-12-29 08:37 /tmp
drwxrwx---   - root supergroup          0 2021-12-29 17:41 /tmp/hadoop-yarn
-rw-r--r--   1 root supergroup  678260987 2021-12-29 12:25 /tmp/hadoop-yarn/ratings.csv
#---------------------------------------------------------------------------------------
#将指定路径文件复制到目标路径
hdfs dfs -cp <源路径> <目的路径> 
#将/test/kb16/hadoop下的ratings.csv复制到test/kb16中
hdfs dfs -cp hdfs dfs -cp /test/kb16/hadoop/ratings.csv /test/kb16
#------------------------------------------------------------------------------------
2021-12-29 17:47:27,806 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:27,980 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:28,537 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:29,513 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:30,365 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:31,239 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:32,106 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false /test/kb16
2021-12-29 17:47:27,806 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:27,980 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:28,537 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:29,513 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:30,365 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:31,239 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 17:47:32,106 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#------------------------------------------------------------------------------------
#删除文件/空白文件夹
hdfs dfs -rm [-skiptrash] <路径> 
#删除/test/kb16下的ratings.csv
hdfs dfs -rm /test/kb16/ratings.csv
#-----------------------------
Deleted /test/kb16/ratings.csv
#-----------------------------
#递归删除文件/空白文件夹
hdfs dfs -rmr [-skiptrash] <路径> 

4.上传文件

#上传文件到hadoop中
hdfs dfs  -put <多个linux上的文件> <hdfs路径>
#上传文件到/test/kb16中
hdfs dfs -put ratings.csv /test/kb16
#-------------------------------------------------------------------------------------
2021-12-29 18:07:24,565 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,012 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,257 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:25,673 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:26,478 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-12-29 18:07:27,162 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将本地文件移动到hdfs路径上
hdfs dfs -copyfromlocal <多个linux上的文件> <hdfs路径> 
#将本地文件复制到hdfs路径上
hdfs dfs -movefromlocal <多个linux上的文件> <hdfs路径>

5、获取文件

#将hdfs中路径文件下载到本地
hdfs dfs -get <hdfs路径>  <linux路径>
#将hadoop中/test/kb16/hadoop下的ratings.csv下载到根目录中
hdfs dfs -get /test/kb16/hadoop/ratings.csv ~/
#-------------------------------------------------------------------------------------
2021-12-29 18:15:14,441 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将hdfs中路径文件合并到本地
hdfs dfs  -getmerge <源路径> <linux路径>
#
hdfs dfs -getmerge /test/kb16/hadoop/ratings.csv ratings.csv 
#-------------------------------------------------------------------------------------
2021-12-29 18:18:08,398 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
#-------------------------------------------------------------------------------------
#将文件从HDFS中复制到本地
hdfs dfs -copytolocal [-ignorecrc] [-crc] [hdfs源路径] [linux目的路径] 
#将文件从HDFS中移动到本地
hdfs dfs -movetolocal [-crc] <hdfs源路径> <linux目的路径> 从本地移动

6.查看文件内容

#利用管道符进行文件的查看
hdfs dfs -cat path|查询范围
#利用text命令查看文件内容
hdfs dfs -text <hdfs路径> 查看文件内容
#查看文件尾部信息
hdfs dfs -tail [-f] <文件> 
#查看文件头部信息
hdfs dfs  -head [-f] <文件> 

7.创建目录

#创建多级文件目录
hdfs dfs -mkdir -p path1/path2

8.修改副本数量

修改hadoop备份的副本数量,默认是三份

#修改hadoop备份的副本数量
hdfs dfs -setrep [-r] [-w] <副本数> <路径>

9.创建空白文件(不推荐使用)

利用-touchz命令创建空白文件的过程中可能会产生错误,因此不推荐使用这个命令

#在指定路径上创建创建空白文件
hdfs dfs -touchz <文件路径> 

10.显示文件统计信息

#显示文件统计信息
hdfs dfs -stat -stat [format] <路径>
#------------------
2021-12-29 04:25:27
#------------------

11、修改权限

#修改文件权限
hdfs dfs -chmod [-r] <权限模式> [路径]
#修改文件的所有者
hdfs dfs -chown [-r] [属主][:[属组]] 路径 
#修改文件所属的用户组
hdfs dfs -chgrp [-r] 属组名称 路径 

12、查看指令的帮助信息

#查看指令的帮助信息
hdfs dfs -help [命令选项]
  • 25
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: HDFS ShellHadoop分布式文件系统(HDFS)的命令行接口。以下是一些HDFS Shell命令的例子: 1. 查看HDFS文件系统的根目录: ``` hadoop fs -ls / ``` 2. 在HDFS文件系统中创建一个目录: ``` hadoop fs -mkdir /mydirectory ``` 3. 将本地文件上传到HDFS文件系统中的目录中: ``` hadoop fs -put /local/path/to/file /hdfs/path/to/directory ``` 4. 从HDFS文件系统中下载文件到本地: ``` hadoop fs -get /hdfs/path/to/file /local/path/to/file ``` 5. 删除HDFS文件系统中的文件或目录: ``` hadoop fs -rm /hdfs/path/to/file hadoop fs -rm -r /hdfs/path/to/directory ``` 6. 在HDFS文件系统中复制文件或目录: ``` hadoop fs -cp /hdfs/path/to/source /hdfs/path/to/destination ``` 7. 查看HDFS文件系统中文件或目录的内容: ``` hadoop fs -cat /hdfs/path/to/file hadoop fs -tail /hdfs/path/to/file ``` 以上只是一些常用的HDFS Shell命令,还有许多其他命令可以使用。 ### 回答2: HDFS Shell命令是在Hadoop分布式文件系统(HDFS)中使用的命令行界面工具。它提供了一种方便直接访问和操作HDFS的方法,可以在终端或命令行中执行。 HDFS Shell命令通常以"hadoop fs"或"hdfs dfs"作为前缀,后跟具体的命令和参数。它们可以用于创建、复制、删除、移动和查看文件和目录等操作。 以下是一些常用的HDFS Shell命令及其功能: - "ls":列出指定路径下的所有文件和目录。 - "mkdir":创建一个新的目录。 - "copyFromLocal":从本地文件系统复制文件到HDFS。 - "copyToLocal":将HDFS上的文件复制到本地文件系统。 - "mv":移动或重命名文件或目录。 - "rm":删除指定的文件或目录。 - "cat":显示文件的内容。 - "put":将本地文件复制到指定路径下。 - "get":将指定路径下的文件复制到本地文件系统。 - "chmod":更改文件或目录的权限。 - "chown":更改文件或目录的所有者。 - "chgrp":更改文件或目录的组。 - "du":显示指定路径下的文件和目录的大小。 HDFS Shell命令是Hadoop生态系统中重要的一部分,可以方便地进行文件系统的操作。它也可以与其他Hadoop工具和组件集成,如MapReduce、Hive和Spark等,来进行更复杂的数据处理和分析工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值