Hadoop Shell命令详解与Linux环境下的HDFS操作
Hadoop Shell是Hadoop分布式文件系统(HDFS)和本地文件系统(Local File System)在Linux shell环境下的接口工具,它提供了一系列命令行操作,方便用户在集群环境中进行文件管理和数据处理。本文档主要涵盖了Hadoop Shell(FSShell)中常用的一些核心命令,这些命令有助于用户在HDFS上执行常见的文件操作,如复制、移动、删除、权限设置、大小查看等。 1. **cat**: `hadoopfs-cat`命令用于读取指定文件并将其内容输出到标准输出(stdout)。例如,你可以同时从多个HDFS或本地文件中获取内容,如`hadoopfs-cat hdfs://host1:port1/file1 hdfs://host2:port2/file2` 或 `hadoopfs-cat file:///file3/user/hadoop/file4`。成功执行后返回0,失败则返回-1。 2. **chgrp** 和 **chmod**: - `hadoopfs-chgrp [-R] GROUP URI[URI...]` 用于改变文件或目录的组所有权。`-R`标志用于递归处理整个目录结构。用户必须是文件所有者或具有管理员权限才能执行此操作。 - `hadoopfs-chmod [-R] PERMISSION URI[URI...]` 改变文件或目录的权限模式,`-R`同样用于递归应用权限。 3. **chown**: `hadoopfs-chown [-R] USER[:GROUP] URI[URI...]` 改变文件或目录的所有权。`USER`可以是用户名,`GROUP`可选。递归模式 `-R`可用。 4. **copyFromLocal** 和 **copyToLocal**: - `hadoopfs-copyFromLocal` 将本地文件或目录复制到HDFS。 - `hadoopfs-copyToLocal` 从HDFS复制文件或目录到本地。 5. **cp**: 与标准的Unix `cp` 命令类似,用于在HDFS中复制文件或目录。 6. **du** 和 **dus**: - `du` 计算指定文件或目录的大小。 - `dus` 同样用于大小计算,但会递归统计目录内容。 7. **expunge**: 清除不再引用的HDFS文件块,释放存储空间。 8. **get** 和 **getmerge**: - `hadoopfs-get` 从HDFS下载文件到本地。 - `hadoopfs-getmerge` 同时下载多个文件,适合合并大文件。 9. **ls** 和 **lsr**: - `ls` 列出HDFS或本地目录的内容。 - `lsr`(列出目录及其内容)提供了递归列出目录的功能。 10. **mkdir** 和 **rmr**: - `hadoopfs-mkdir` 创建目录。 - `hadoopfs-rmr` 删除目录(包括其所有内容)。 11. **movefromLocal** 和 **mv**: - `hadoopfs-movefromLocal` 移动或复制本地文件到HDFS。 - `hadoopfs-mv` 在HDFS内部移动文件或目录。 12. **put**: 将本地文件或目录上传到HDFS。 13. **rm**: 删除HDFS文件或目录。 14. **setrep**: 设置HDFS文件或目录的副本数量。 15. **stat**: 显示文件或目录的基本属性,如大小、权限、创建时间等。 16. **tail**: 查看文件的尾部内容。 17. **test**: 用于检查文件属性,类似于Unix的`-e`和`-d`选项。 18. **text**: 用于查看文本文件内容。 19. **touchz**: 在HDFS上创建新的空文件。 每个Hadoop Shell命令遵循相似的Unix Shell语法,但在处理分布式文件系统时,可能会有额外的限制和性能考虑。在执行这些操作时,确保正确配置Hadoop环境,理解权限规则,并注意网络延迟和文件复制过程。通过掌握这些命令,用户可以有效地管理大规模的数据和文件操作,提高Hadoop集群的效率。
•FS Shell
◦cat
◦chgrp
◦chmod
◦chown
◦copyFromLocal
◦copyToLocal
◦cp
◦du
◦dus
◦expunge
◦get
◦getmerge
◦ls
◦lsr
◦mkdir
◦movefromLocal
◦mv
◦put
◦rm
◦rmr
◦setrep
◦stat
◦tail
◦test
◦text
◦touchz
FS Shell
调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置文件中的默认值是namenode:namenodeport)。大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout。
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。
chgrp
使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …] Change group association of files. With -R, make the change recursively through the directory structure. The user must be the owner of files, or else a super-user. Additional information is in the Permissions User Guide. -->
改变文件所属的组。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。更多的信息请参见HDFS权限用户指南。
chmod
使用方法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。更多的信息请参见HDFS权限用户指南。
chown
使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
改变文件的拥有者。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。更多的信息请参见HDFS权限用户指南。
copyFromLocal
使用方法:hadoop fs -copyFromLocal <localsrc> URI
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展