Hadoop FileSystem Shell 常用操作命令

提示:本文章只总结一下常用的哈,详细的命令大家可以移步官方的文档(链接贴在下面了哈🤣)— HDFS官方命令手册链接。
在这里插入图片描述

目录

  • 1. cat 命令:查看 HDFS 文件内容
  • 2. put 命令:将本地文件上传到 HDFS
  • 3. get 命令:从HDFS下载文件到本地
  • 4. chmod 命令:更改 HDFS中文件和目录的权限
  • 5. chown 命令:更改 HDFS中文件或目录的所有者和所属组
  • 6. cp 命令:将文件或目录从一个位置复制到另一个位置
  • 7. du 命令:显示指定目录中所有文件和子目录的大小
  • 8. dus 命令:显示指定文件或目录的总大小
  • 9. ls 命令:列出 HDFS 中指定路径的文件或目录信息
  • 10.lsr 命令:列出 HDFS 中指定路径的所有文件和目录,递归遍历子目录
  • 11.mkdir 命令:创建一个或多个目录,支持创建多级父目录
  • 12.rm命令:删除指定的文件或文件列表
  • 13.tail:查看文件的最后部分内容
  • 14.head:查看文件的开头部分内容
  • 15.mv命令:移动文件或目录,或重命名文件
  • 整理不易,一键三连呀列位看官老爷们~万福金安!🤣🤣🤣


1. cat 命令:查看 HDFS 文件内容

类似于 Linux 中的 cat 命令,将文件的内容输出到标准输出(通常是终端)。

hadoop fs -cat <hdfs_path>
  • <hdfs_path>:要查看的文件在 HDFS 中的路径。
hadoop fs -cat /user/hadoop/gushi.txt
《淮上与友人别》- 郑谷 唐扬子江头杨柳春,杨花愁杀渡江人。
数声风笛离亭晚,君向潇湘我向秦。

君向潇湘我向秦,这首诗太浪漫了 列位🤣🤣🤣

Tips:

  • cat 命令只适合查看小文件的内容哈。文件过大,建议配合 headtail,只查看文件的前几行或最后几行。
  • 如果文件不存在,报错:
    File /user/hadoop/file.txt does not exist
    

hadoop fs -cat URI [URI …]

也可以使用URL哈~

  1. 查看单个文件内容

    hadoop fs -cat hdfs://host1:port1/file1
    
  2. 查看多个文件内容

    hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
    
  3. 查看本地文件和 HDFS 文件

    hadoop fs -cat file:///file3 /user/hadoop/file4
    

    同时输出本地文件 file3 和 HDFS 文件 file4 的内容。


2. put 命令:将本地文件上传到 HDFS

hadoop fs -put 命令将本地文件或目录上传到HDFS。

hadoop fs -put <local_path> <hdfs_path>
  • <local_path>:要上传的本地文件或目录的路径。
  • <hdfs_path>:目标 HDFS 目录的路径。
  1. 上传单个文件

    hadoop fs -put localfile /user/hadoop/hadoopfile
    

    将本地的 localfile 上传到 HDFS 的 /user/hadoop/hadoopfile 路径下。

  2. 上传多个文件

    hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
    

    localfile1localfile2 同时上传到 HDFS 的 /user/hadoop/hadoopdir 目录下。

  3. 使用 HDFS URI

    hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
    

    这条命令通过指定 HDFS URI,将 localfile 上传到指定的 HDFS 路径。

  4. 从标准输入上传

    hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
    

    使用 - 表示从标准输入读取数据并上传到 HDFS 的指定路径。通常用于管道操作。


hadoop fs -put  /home/yushifu/hongloumeng.txt  /user/hadoop/

ls 命令查看 HDFS 中的文件:

hadoop fs -ls /user/hadoop/
Found 1 items
-rw-r--r--   3 hadoop supergroup      28 2024-09-26 12:00 /user/hadoop/hongloumeng.txt

cat 命令:

hadoop fs -cat /user/hadoop/hongloumeng.txt
     好了歌 曹雪芹 清
世人都晓神仙好,惟有功名忘不了!
古今将相在何方?荒冢一堆草没了。
世人都晓神仙好,只有金银忘不了!
终朝只恨聚无多,及到多时眼闭了。
世人都晓神仙好,只有娇妻忘不了!
君生日日说恩情,君死又随人去了。
世人都晓神仙好,只有儿孙忘不了!
痴心父母古来多,孝顺儿孙谁见了?

终朝只恨聚无多,及到多时眼闭了(感触颇深呀)

Tips:

  • -p:保留文件的原属性(如权限、时间戳等)。

    hadoop fs -put -p /home/yushifu/hongloumeng.txt   /user/hadoop/
    
  • -f:强制覆盖已有文件。

    hadoop fs -put -f /home/yushifu/hongloumeng.txt   /user/hadoop/
    

3. get 命令:从HDFS下载文件到本地

hadoop fs -get <hdfs_path> <local_path>
  • <hdfs_path>:要下载的 HDFS 文件的路径。
  • <local_path>:下载后保存到本地文件系统的路径。

  1. 下载单个文件

将HDFS 文件 /user/hadoop/gushi.txt 下载到本地 /home/user/

hadoop fs -get /user/hadoop/gushi.txt /home/user/
  1. 下载整个目录

下载 HDFS 中的目录( /user/hadoop/):

hadoop fs -get /user/hadoop/my_directory/ /home/user/

  • -p:保留文件的原属性(如权限、时间戳等)。

    hadoop fs -get -p /user/hadoop/example.txt /home/user/
    
  • -f:如果目标位置已经存在同名文件,则强制覆盖。

    hadoop fs -get -f /user/hadoop/example.txt /home/user/
    

hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
  • 从 HDFS 将文件复制到本地文件系统。

  • 可选参数允许处理 CRC 校验。

  • -ignorecrc:复制 CRC 校验失败的文件。

  • -crc:同时复制文件及其 CRC 信息。

  1. 从 HDFS 复制文件到本地

    hadoop fs -get /user/hadoop/file localfile
    

    将 HDFS 中的 /user/hadoop/file 复制到当前目录下的 localfile

  2. 使用 HDFS URI

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

    指定 HDFS URI,将文件复制到本地的 localfile


4. chmod 命令:更改 HDFS中文件和目录的权限

hadoop fs -chmod <mode> <path>
  • <mode>:权限设置,可以使用符号模式或八进制模式。
  • <path>:要更改权限的文件或目录的 HDFS 路径。

权限类型:

  • 读 (r):允许读取文件或列出目录内容。
  • 写 (w):允许修改文件或创建、删除目录中的文件。
  • 执行 (x):允许进入目录。

权限分为三种用户:

  • 所有者 (u):文件或目录的创建者。
  • 组 (g):与所有者同属一个组的用户。
  • 其他 (o):系统中所有其他用户。

  1. 给文件添加读权限

    hadoop fs -chmod +r /path/to/file
    
  2. 去掉组的写权限

    hadoop fs -chmod g-w /path/to/file
    

八进制模式:

  • 只读4r--
  • 只写2-w-
  • 只执行1--x
  • 读+写4 + 2 = 6rw-
  • 读+执行4 + 1 = 5r-x
  • 写+执行2 + 1 = 3-wx
  • 读+写+执行4 + 2 + 1 = 7rwx

八进制权限通常由三个数字组成,分别表示:

  1. 所有者(user)
  2. 组(group)
  3. 其他用户(other)

eg.

  • 755 的意思是:
    • 所有者:7rwx,可读、可写、可执行)
    • 组:5r-x,可读、可执行)
    • 其他用户:5r-x,可读、可执行)
  1. 设置权限为 644

    hadoop fs -chmod 644 /path/to/file
    

    这里:

    • 所有者有读、写权限(rw-,值 6
    • 组有读权限(r--,值 4
    • 其他用户有读权限(r--,值 4
  2. 设置权限为 770

    hadoop fs -chmod 770 /path/to/directory
    
    • 所有者有读、写、执行权限(rwx,值 7
    • 组有读、写、执行权限(rwx,值 7
    • 其他用户没有任何权限(---,值 0

5. chown 命令:更改 HDFS中文件或目录的所有者和所属组

执行 chown 命令的用户必须有足够的权限才能修改文件或目录的所有者和组,通常只有超级用户(如 HDFS 的管理员)能够更改其他用户的所有权。

hadoop fs -chown <owner>:<group> <path>
  • <owner>:要设置的新所有者用户名。
  • <group>:要设置的新所属组名(可选)。
  • <path>:要更改所有者和组的文件或目录的 HDFS 路径。
  1. 更改文件所有者

    hadoop fs -chown newuser /path/to/file
    

    /path/to/file 的所有者更改为 newuser,组保持不变。

  2. 更改文件所有者和组

    hadoop fs -chown newuser:newgroup /path/to/file
    

    /path/to/file 的所有者更改为 newuser,并将所属组更改为 newgroup

  3. 更改目录的所有者及组

    hadoop fs -chown newuser:newgroup /path/to/directory
    
  4. 递归更改目录及其内容的所有者和组

    hadoop fs -chown -R newuser:newgroup /path/to/directory
    

    -R 选项可以递归地更改指定目录及其所有子目录和文件的所有者和组。


6. cp 命令:将文件或目录从一个位置复制到另一个位置

hadoop fs -cp [options] <source> <destination>
  • <source>:要复制的文件或目录的路径。
  • <destination>:复制到的目标路径。

option:

  • -f:强制覆盖目标文件,如果目标文件已存在,则不提示。
  • -p:保留源文件的权限、时间戳和所有者信息。
  • -R:递归复制,适用于目录(文件夹)及其所有内容。

  1. 复制单个文件

    hadoop fs -cp /path/to/source/file.txt /path/to/destination/
    
  2. 复制多个文件

    hadoop fs -cp /path/to/source/file1.txt /path/to/source/file2.txt /path/to/destination/
    
  3. 递归复制目录

    hadoop fs -cp -R /path/to/source/directory /path/to/destination/
    
  4. 强制覆盖目标文件

    hadoop fs -cp -f /path/to/source/file.txt /path/to/destination/file.txt
    
  5. 保留文件属性

    hadoop fs -cp -p /path/to/source/file.txt /path/to/destination/
    
  • 确保源路径和目标路径都是有效的 HDFS 路径。如果路径不正确,命令将返回错误。

7. du 命令:显示指定目录中所有文件和子目录的大小

hadoop fs -du URI [URI …]

如果只指定一个文件,则显示该文件的大小。

  1. 查看目录大小

    hadoop fs -du /user/hadoop/dir1
    
    1024  /user/hadoop/dir1/file1.txt
    2048  /user/hadoop/dir1/file2.txt
    3072  /user/hadoop/dir1/subdir
    
  2. 查看多个路径

    hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1
    
  3. 使用 HDFS URI

    hadoop fs -du hdfs://host:port/user/hadoop/dir1
    

    通过 HDFS URI 来显示目录的大小。

8. dus 命令:显示指定文件或目录的总大小

hadoop fs -dus <args>
  • dus命令更关注总大小,而不是逐个列出每个文件
  1. 查看单个目录的总大小

    hadoop fs -dus /user/hadoop/dir1
    
    6144  /user/hadoop/dir1
    
  2. 查看文件的大小

    hadoop fs -dus /user/hadoop/file1
    
    1024  /user/hadoop/file1
    
  3. 使用 HDFS URI

    hadoop fs -dus hdfs://host:port/user/hadoop/dir1
    

    通过 HDFS URI 来获取目录的总大小。


9. ls 命令:列出 HDFS 中指定路径的文件或目录信息

hadoop fs -ls <args>
  • 列出 HDFS 中指定路径的文件或目录信息。

  • 文件文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID

  • 目录目录名 <dir> 修改日期 修改时间 权限 用户ID 组ID

hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
  • 列出指定路径的文件和目录信息。
  • /user/hadoop/file1/user/hadoop/file2 是要检查的文件。
  • hdfs://host:port/user/hadoop/dir1 是要检查的目录。
  • /nonexistentfile 用于检查不存在的文件。
-rw-r--r--    3 1024 2024-09-25 10:00 /user/hadoop/file1
-rw-r--r--    1 2048 2024-09-25 10:05 /user/hadoop/file2
drwxr-xr-x    -    0 2024-09-24 09:30 /user/hadoop/dir1
  • 第一行表示 file1 的信息,包括权限、复制数、大小、修改日期和时间等。
  • 第二行表示 file2 的信息。
  • 第三行表示 dir1 是一个目录。

10.lsr 命令:列出 HDFS 中指定路径的所有文件和目录,递归遍历子目录

hadoop fs -lsr <args>
  • 列出 HDFS 中指定路径的所有文件和目录,递归遍历子目录。
drwxr-xr-x    -    0 2024-09-24 09:30 /user/hadoop/dir1
-rw-r--r--    3 1024 2024-09-25 10:00 /user/hadoop/file1
drwxr-xr-x    -    0 2024-09-24 09:32 /user/hadoop/dir1/subdir1
-rw-r--r--    1 2048 2024-09-25 10:05 /user/hadoop/file2
  • 显示 /user/hadoop 及其子目录 dir1subdir1 的所有文件和目录。

11.mkdir 命令:创建一个或多个目录,支持创建多级父目录

hadoop fs -mkdir <paths>
  • 创建一个或多个目录,支持创建多级父目录。
hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir
mkdir: `/user/hadoop/dir1': Created
mkdir: `/user/hadoop/dir2': Created
mkdir: `hdfs://host1:port1/user/hadoop/dir': Created
mkdir: `hdfs://host2:port2/user/hadoop/dir': Created
  • 每一行表示成功创建的目录。

12.rm命令:删除指定的文件或文件列表

hadoop fs -rm <path1> [<path2> ...]
hadoop fs -rm /user/hadoop/file1 /user/hadoop/file2
  • 删除操作是不可逆的,请确保在执行命令之前备份重要数据。
  • 使用 -f 选项可以强制删除文件而不提示确认。
    hadoop fs -rm -f /user/hadoop/file1
    

13.tail:查看文件的最后部分内容

  • 默认情况下是最后 1 KB
hadoop fs -tail <path>

eg.:

hadoop fs -tail /user/hadoop/file.txt
Last few lines of the file...
Line 98: Error occurred at ...
Line 99: Processing complete.

14.head:查看文件的开头部分内容

  • 默认情况下是前 1 KB。
hadoop fs -head <path>

eg.

hadoop fs -head /user/hadoop/file.txt
First few lines of the file...
Line 1: Starting process...
Line 2: Initialization complete.

15.mv命令:移动文件或目录,或重命名文件

hadoop fs -mv <source> <destination>
  1. 移动文件

    hadoop fs -mv /user/hadoop/file.txt /user/hadoop/backup/file.txt
    
  2. 重命名文件

    hadoop fs -mv /user/hadoop/oldname.txt /user/hadoop/newname.txt
    
  3. 移动目录

    hadoop fs -mv /user/hadoop/dir1 /user/hadoop/archive/dir1
    

整理不易,一键三连呀列位看官老爷们~万福金安!🤣🤣🤣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/437677.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日OJ题_牛客_JOR26最长回文子串_C++_Java

目录 牛客_OR26最长回文子串 题目解析 C代码1 C代码2 Java代码 牛客_OR26最长回文子串 最长回文子串_牛客题霸_牛客网 描述&#xff1a; 对于长度为n的一个字符串A&#xff08;仅包含数字&#xff0c;大小写英文字母&#xff09;&#xff0c;请设计一个高效算法&#xf…

Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点

题目&#xff1a; 题解&#xff1a; func deleteNode(root *TreeNode, key int) *TreeNode {var cur, curParent *TreeNode root, nilfor cur ! nil && cur.Val ! key {curParent curif cur.Val > key {cur cur.Left} else {cur cur.Right}}if cur nil {retur…

Android SQLite的基本使用、生成Excel文件保存到本地

1. Android SQLite的基本使用 1.1. SQLiteOpenHelper Android 底层已经通过一个SQLiteOpenHelper的抽象类将数据库的创建&#xff0c;以及修改&#xff0c;更新等都放在了里面。 要使用它必须实现它的OnCreate(SQLiteDatabase db)&#xff0c;onUpgrade(SQLiteDatabase db, int…

VMware ESXi 6.7U3u macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 6.7U3u macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版) UI fix 此版本解决的问题&#xff1a;VMware Host Client 无法将现有虚拟磁盘 (VMDK) 附加到虚拟机 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-…

JVM和GC监控技术

一、监控技术简介 JVM是什么&#xff1f;项目里面有JVM吗&#xff1f;JVM跟Tomcat有什么关系&#xff1f;为什么需要去分析JVM&#xff1f; 1. JVM(全称&#xff1a;Java Virtual Machine)&#xff0c;Java虚拟机 是Java程序运行的环境&#xff0c;它是一个虚构的计算机&…

热网无线监测系统/config.aspx接口存在反射性XSS漏洞

漏洞描述 热网无线监测系统/config.aspx接口存在反射性XSS漏洞 漏洞复现 FOFA body"Downloads/HDPrintInstall.rar" || body"skins/login/images/btn_login.jpg" POC IP/config.aspx POC <script>alert(1)</script> 点击确认成功弹窗1

目前最好用的爬虫软件是那个?

作为一名数据工程师&#xff0c;三天两头要采集数据&#xff0c;用过十几种爬虫软件&#xff0c;也用过Python爬虫库&#xff0c;还是建议新手使用现成的软件比较方便。 这里推荐3款不错的自动化爬虫工具&#xff0c;八爪鱼、亮数据、Web Scraper 1. 八爪鱼爬虫 八爪鱼爬虫是一…

【Linux庖丁解牛】—Linux基本指令(中)!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a; Linux庖丁解牛 &#x1f516;克心守己&#xff0c;律己则安 目录 1、rmdir与rm指令 2、man指令 3、cp指令 4、mv指令 5、cat与tac指令 6、重定向 7、more指令 8、…

OpenCV第十二章——人脸识别

1.人脸跟踪 1.1 级联分类器 OpenCV中的级联分类器是一种基于AdaBoost算法的多级分类器&#xff0c;主要用于在图像中检测目标对象。以下是对其简单而全面的解释&#xff1a; 一、基本概念 级联分类器&#xff1a;是一种由多个简单分类器&#xff08;弱分类器&#xff09;级联组…

Harmony商城项目

目录&#xff1a; 1、启动项目看效果图2、首页和购物车代码分析2.1、首页代码分析2.2、女装页面代码分析2.3、购物车页面代码分析2.4、购物车结算代码 3、个人中心代码分析 1、启动项目看效果图 2、首页和购物车代码分析 2.1、首页代码分析 import CommonConstants from ../co…

海外合规|新加坡推出智慧国2.0计划 设新网络安全与保障机构

智慧国2.0计划&#xff1a;政府将成立新机构杜绝网络伤害和援助受害者。政府将成立新机构&#xff0c;并制定新法令&#xff0c;以杜绝网络伤害行为和为受害者提供更多援助与保障。新加坡总理兼财政部长黄循财星期二&#xff08;10月1日&#xff09;在推介晚宴上&#xff0c;宣…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中&#xff0c;使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私&#xff0c;还是为了访问某些特定资源&#xff0c;代理IP都扮演着重要的角色。今天&#xff0c;我们就来聊聊SOCKS5代理和HTTP代理&#xff0c;看看这两者到底哪个更快…

9. 正则表达式

编程工具和技术是以一种混乱、进化的方式生存和传播的。获胜的并不总是最好或最杰出的工具&#xff0c;而是那些在合适的利基市场中发挥足够好的功能&#xff0c;或者恰好与另一项成功的技术相结合的工具。 在本章中&#xff0c;我将讨论这样一种工具--正则表达式。正则表达式是…

【Android 14源码分析】Activity启动流程-3

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

【C++】C++基础

目录 一. C关键字(C98) 二、C的第一个程序 三、命名空间 3.1.namespace的价值 3.2.namespace的定义 3.2.命名空间使用 总结&#xff1a;在项目当中第一、第二种方法搭配使用&#xff0c;第三种冲突风险非常大&#xff0c;仅适合练习使用。 四、C输入&输出 五、缺省…

python之with

with上下文管理是什么呢&#xff1f; 一般都是使用系统提供的一些with语句&#xff0c;列如我要去读取一些数据进行分析&#xff0c;就可以使用with open去读取某些数据&#xff0c;或者我要把一些图片给他保存到某些地方&#xff0c;可以用with给他写入。 上下午管理器with是…

html5 + css3(上)

目录 HTML认知web标准vscode的简介和使用注释标题和段落换行和水平线标签文本格式化标签图片图片-基本使用图片-属性 绝对路径相对路径音频标签视频标签超链接 HTML基础列表列表-无序和有序列表-自定义 表格表格-使用表格-表格标题和表头单元格表格-结构标签&#xff08;了解&a…

SQL:函数以及约束

目录 介绍 函数 字符串函数 数值函数 日期函数 流程函数 约束 总结 介绍 说到函数我们都不陌生,在C,C,java等语言中都有库函数,我们在平时也是经常使用,函数就是一段代码,我们既可以自定义实现,又可以使用库里内置的函数;从来更加简洁方便的完成业务;同样的在SQL中也有…

五子棋双人对战项目(4)——匹配模块(解读代码)

目录 一、约定前后端交互接口的参数 1、websocket连接路径 2、构造请求、响应对象 二、用户在线状态管理 三、房间管理 1、房间类&#xff1a; 2、房间管理器&#xff1a; 四、匹配器(Matcher) 1、玩家实力划分 2、加入匹配队列&#xff08;add&#xff09; 3、移除…

【C语言指南】数据类型详解(上)——内置类型

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C语言指南》 期待您的关注 目录 引言 1. 整型&#xff08;Integer Types&#xff09; 2. 浮点型&#xff08;Floating-Point …