hadoop2--hdfs的shell操作

本文详细介绍了如何通过HDFS shell命令进行文件上传、下载、移动、复制、权限管理等操作,包括`put`, `copyFromLocal`, `get`, `chmod`, `chown`等实用技巧,以及文件信息查询、目录管理、大小统计等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS 的shell操作

hadoop fs [命令] [文件目录] [文件目录]

hdfs内外文件交互

# 外部文件->hdfs
    #文件移动到hdfs
    -moveFromLocal <localsrc> <dst>
        类似put 文件移到hdfs系统中 原src会被删除
    -moveToLocal [-crc] <src> <dst>

    #文件放入hdfs
    -put [参数][ - | <localsrc1> .. ] <dst>
        [-f] 覆盖
        [-p] 保留访问和修改时间,所有权和权限。
        [-l] 允许DataNode将文件延迟保存到磁盘,将复制因子设为1。将导致持久性降低。小心使用。
        [-d] 跳过后缀为._COPYING_的临时文件的创建。
    #文件复制到hdfs
    -copyFromLocal /本地文件路径 /hdfs路径【文件名】
        - 可指定文件名
        -p 保留访问和修改时间,所有权限
        -f 覆盖
        -l 
        -d 跳过后缀为._COPYING_的临时文件的创建。
	
# hdfs->外部文件
	# 文件复制到本地
    -get 
        [-ignorecrc] 对下载的文件跳过CRC检查。
        [-crc] 为下载的文件写入CRC校验和。
        [-p] 保留访问和修改时间,所有权和权限。
        [-f] 覆盖
	# 将一个或多个hdfs文件merge后输出到本地
	-getmerge
		hadoop fs -getmerge -nl /src /opt/output.txt
		hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt
	# 复制到本地
	-copyToLocal
		hadoop fs -copyToLocal /hdfs文件路径 /本地路径【文件名】

	

文件信息

# 文件信息
# 统计文件夹大小信息
hadoop fs -du -h [/hdfs目录] 带文件目录(查看某目录下所有文件大小)
hadoop fs -du -s -h /input -s汇总统计 -h格式化
	
# 统计分区大小信息
hadoop fs -df -h 	(查看文件系统大小信息)	

# 文件目录内部操作
#删除
-rm
	[-f] 不输出错误信息
	[-r |-R] 递归删除
	[-skipTrash] 绕过垃圾桶立刻删除
	[-safely] 防止意外删除大文件目录
	hadoop fs -rm hdfs://nn.example.com/file /user/hadoop/emptydir
-rmdir
	删除空文件夹
	[--ignore-fail-on-non-empty]
# 创建目录
-mkdir
	-p 创建多级	
	注意hdfs会自动清除空文件夹
# 创建文件/更改文件操作时间
-touch
	将URI指定的文件的访问和修改时间更新为当前时间。
	如果该文件不存在,则会在URI上创建一个零长度的文件,并将当前时间作为该URI的时间戳。
	[-a] 
	[-m] 
	[-t TIMESTAMP] 
	[-c]如果文件不存在,请使用-c选项不创建文件
# 显示文件信息
-ls 
    [-C] 仅显示文件和目录的路径。
        [atguigu@hadoop12 hadoop-3.1.3]$ hadoop fs -ls -C
        mytest
    [-d] 列出文件所在的目录
    [-h] 文件大小以易读方式显示
    [-q] 
    [-R] 列出hdfs文件系统所有的目录和文件
        [atguigu@hadoop12 hadoop-3.1.3]$ hadoop fs -ls -R
        drwxr-xr-x   - atguigu supergroup          0 2021-04-09 19:06 mytest
        -rw-r--r--   3 atguigu supergroup  195013152 2021-04-09 19:06 mytest/jdk-8u212-linux-x64.tar.gz
    [-t] 按修改时间对输出进行排序(最新的优先)。
    [-S] 按文件大小对输出进行排序。
    [-r] 颠倒排序顺序。
    [-u] 使用访问时间而不是修改时间来进行显示和排序。
    [-e] 仅显示文件和目录的纠编码
# 显示文件内容
-cat
# 显示文件头尾
-head
-tail
	显示1000个字节
hadoop fs -cat /hdfs文件名
# 文件移动
-mv
	hdfs文件系统内移动
# 文件复制
-cp
	[-f] 覆盖
	[-p | -p[topax]] 保留文件的所有权\时间戳\权限\ACL\XAttr等

权限管理

# 组管理
-chgrp

# 更改文件的权限
-chmod

# 更改所属组
-chown

hadoop fs -chmod 777 /hdfs文件名
hadoop fs -chown 用户名:用户组 /hdfs文件名
hadoop fs -chgrp 新的用户组 /hdfs文件名

文件设置

#设置hdfs文件副本数
-setrep 
	hadoop fs -setrep 个数 /hdfs文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值