hadoop shell命令指南

本文详细介绍了FSShell工具在Hadoop环境中执行的文件操作,如cat命令查看文件内容,chmod/chown/chgrp改变文件权限和所有权,以及文件上传下载、复制等,包括put/copyFromLocal、get/cp等命令的使用方法和测试步骤。
摘要由CSDN通过智能技术生成

FS Shell
调用方式:
(1)Hadoop fs
(2)hdfs dfs

1.cat

#使用方法:hadoop fs -cat URI [URI …]
#将路径指定文件的内容输出到stdout。
#示例:
#hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
#hadoop fs -cat file:///file3 /user/hadoop/file4
#返回值:
#成功返回0,失败返回-1

 测试(首先启动hadoop集群):

#启动hadoop集群
[student@hadoop102 ~]$ hdp.sh start
 =================== 启动 hadoop集群 ===================
 --------------- 启动 hdfs ---------------
Starting namenodes on [hadoop102]
Starting datanodes
Starting secondary namenodes [hadoop104]
 --------------- 启动 yarn ---------------
Starting resourcemanager
Starting nodemanagers
 --------------- 启动 historyserver ---------------
[student@hadoop102 ~]$ jps
1331 NameNode
1780 NodeManager
2009 Jps
1498 DataNode
1949 JobHistoryServer

#先查看/test目录下的文件
[student@hadoop102 ~]$ hadoop fs -ls /test
Found 1 items
-rw-r--r--   1 student supergroup         27 2023-11-15 18:12 /test/test.txt

#使用cat命令查看/test/test.txt文件的内容
[student@hadoop102 ~]$ hadoop fs -cat /test/test.txt
good dood study
day day up
[student@hadoop102 ~]$

2.chgrp

chgrp
#使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …]
#改变文件所属的组。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。

chmod
#使用方法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
#改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户

修改前

修改后

chgrp
[student@hadoop102 ~]$ hadoop fs -chgrp -R student /test/test.txt
#命令解析,上述命令意思是把/test/test.txt文件修改用户组为student

测试:

修改前

chmod
[student@hadoop102 ~]$ hadoop fs -chmod 766 /test/test.txt
#命令解析
#chmod是修改的文件权限,4代表可读,2代表可写,1代表可执行吗,
#类似7(4+2+1)代表拥有读写执行权限,6(4+2)代表拥有读写权限
#三个数字的组合例如764,意思文件所有者拥有所有权限,用户组拥有读写权限,其他用户拥有读权限

修改后

 3.chown

chown
#使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]

#改变文件的拥有者。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户

测试

[student@hadoop102 ~]$ hadoop fs -chown -R root:root /test/
#命令解析就是chgrp的promax,不仅可以修改所属组,还可以更改所属主,-R参数是循环遍历到目录下的所有文件

4. put/copyFromLocal

copyFromLocal(功能片面)
使用方法:hadoop fs -copyFromLocal <localsrc> URI
#除了限定源路径是一个本地文件外,和put命令相似

put(功能强大常用)
使用方法:hadoop fs -put <localsrc> ... <dst>
从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。
hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
hadoop fs -put  hdfs://host:port/hadoop/hadoopfile
#从标准输入中读取输入。
#返回值:
#成功返回0,失败返回-1。

测试 

 5.ls/lsr

ls
使用方法:hadoop fs -ls <args>
如果是文件,则按照如下格式返回文件信息:
文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID
如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息如下:
目录名 <dir> 修改日期 修改时间 权限 用户ID 组ID
示例:
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
返回值:
成功返回0,失败返回-1。

lsr
使用方法:hadoop fs -lsr <args>
ls命令的递归版本。类似于Unix中的ls -R。

上面实例已经提到,很简单不在赘述

6.mv/moveFromLocal

movefromLocal
使用方法:hdfs dfs -moveFromLocal <src> <dst>

输出一个”not implemented“信息。

mv
使用方法:hadoop fs -mv URI [URI …] <dest>

将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
示例:

hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1
返回值:

成功返回0,失败返回-1。

7.rm

rm
使用方法:hadoop fs -rm URI [URI …]

删除指定的文件。只删除非空目录和文件。请参考rmr命令了解递归删除。
示例:

hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir

测试

8. stat

stat
使用方法:hadoop fs -stat URI [URI …]

返回指定路径的统计信息。

示例:

hadoop fs -stat path

 测试

9.tail

tail
使用方法:hadoop fs -tail [-f] URI

将文件尾部1K字节的内容输出到stdout。支持-f选项,行为和Unix中一致。

示例:

hadoop fs -tail pathname

 测试

10.du

使用方法:hadoop fs -du URI [URI …]

显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
示例:
hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1

测试

11.get

使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。

示例:

hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port/user/hadoop/file localfile

测试

12.cp

使用方法:hadoop fs -cp URI [URI …] <dest>

将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
示例:

hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

测试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

D(自律版)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值