大数据-Hadoop-基础篇-第四章-HDFS(分布式文件存储)

大数据-Hadoop-基础篇-第四章-HDFS(分布式文件存储)使用 get 命令可以将 HDFS 文件系统中的文件下载到本地 注意下载时的文件名不能与本地文件相同 否则会提示文件已经存在

大家好,欢迎来到IT知识分享网。

参考

经典大数据开发实战(Hadoop &HDFS&Hive&Hbase&Kafka&Flume&Storm&Elasticsearch&Spark)

概念

组成

体系结构

在这里插入图片描述

数据块

HDFS 文件读取

在这里插入图片描述

HDFS 文件写入

在这里插入图片描述

常用命令

注意:hdfs dfs = hadoop fs.

1. Is

使用上命令可以查看HDFS系统中的目录和文件。例如,查看HDFS文件系统根目录下的目录和文件,命令如下:”

hadooop fs -ls / 

递归列出 HDFS 文件系统根目录下的所有目录和文件,命令如下:”

hadooop fs -ls -R / 

2. put

将本地文件上传到 HDFS系统中。例如,将本地文件 a.txt 上传到 HDFS 文件系统的/input文件夹中,命令如下:。

hadoop fs -put a.txt /input/ 

3.moveFromLocal.

将本地文件移动到HDFS 文件系统中,可以一次移动多个文件。与put命令类似,不同的是该命令执行后源文件将被删除。例如,将本地文件a.txt移动到HDFS的/imnput 文件夹中,命令如下:.

hadoop fs -moveFromLocal a.txt /input/ 

4.get

使用 get 命令可以将 HDFS 文件系统中的文件下载到本地,注意下载时的文件名不能与本地文件相同,否则会提示文件已经存在。下载多个文件或目录到本地时,要将本地路径设置为文件夹。例如,将 HDFS 根目录的 imput 文件夹中的文件 a.txt 下载到本地当前目录,命令如下:

$ hadoop fs -get /input/a.txt a.txt 

将HDFS根目录的input 文件夹下载到本地当前目录,命令如下:

hadoop fs -get /input/ ./ 

需要注意的是,需要确保用户对当前目录有可写权限。

5.rm

使用rm 命令可以删除 HDFS 系统中的文件或文件夹,每次可以删除多个文件或目录。例删除 HDFS 根目录的 input 文件夹中的文件 a.txt,命令如下:女1、

hadoop fs -rm /input/a.txt 

递归删除 HDFS根目录的output 文件夹及该文件夹下的所有内容,命令如下:

$ hadoop fs -rm -r /output 

6. mkdir

使用 mkdir 命令可以在 HDFS 系统中创建文件或目录。例如,在 HDFS 根目录下创建文件夹 imnput,命令如下:

 hadoop fs -mkdir /input/ 

也可使用-p参数创建多级目录,如果父目录不存在,则会自动创建父目录。命令如下

$ hadoop fs -mkdir -p /input/file 

7.cp

使用 cp命令可以复制 HDFS 中的文件到另一个文件,相当于给文件重命名并保存,但源文件仍然存在。例如,将/imnputa.txt复制到/input/b.txt,并保留 a.txt,命令如下:

hadoop fs -cp /input/a.txt /input/b.txt 

8. mv

使用 mv 命令可以移动 HDFS 文件到另一个文件,相当于给文件重命名并保存,源文件已不存在。例如,将/inputa.txt移动到/inputb.txt,命令如下:

hadoop fs -mv /input/a.txt /input/b.txt 

9.appendToFile

使用 appendToFie 命令可以将单个或多个文件的内容从本地系统追加到 HDFS 系统的文件中。例如,将本地当前目录的文件 a.txt 的内容追加到HDFS 系统的nputb.txt 文件中,命令如下:

$ hadoop fs -appendToFile a.txt /input/b.txt 

若需要一次追加多个本地系统文件的内容,则多个文件用“空格”隔开。例如,将本地文件a.txt和 b.txt的内容追加到HDFS 系统的/inputc.txt文件中,命令如下:

$ hadoop fs -appendToFile a.txt b.txt /input/c.txt 

10. cat

使用 cat 命令可以查看并输出 HDFS 系统中某个文件的所有内容。例如,查看 HDFS 系统中的文件/inputa.txt的所有内容,命令如下:

$ hadoop fs -cat /input/a.txt 

也可以同时查看并输出HDES中的多个文件内容,结果会将多个文件的内容按照顺序合并轮出。例如,查看HDFS中的文件/inputa.txt和文件nputb.txt 的所有内容,命令如下:

$ hadoop fs -cat /input/a.txt /input/b.txt 

javaAPI

引入包

<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.3.1</version> </dependency> 

创建文件夹

package hdfs.demo, import java.io.IoException; / * 创建HDFS日录mydir * / public class CreateDir{ publie statie void main(string[]args) throws IOException{ Confiquration conf = new Confiquration(); conf.set("fs.default.name","hdfs://192.168.170.133:9000"); FileSystem hdfs =FileSystem.get(conf); // 创建目录 boolean isok = hdfs.mkdirs(new Path("hdfs:/mydir")); if(isok){ System.out.println("创建目录成功!"); }else { System.out.println("创建目录失败!"); } hdfs.close(); } } 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130383.html

(0)
上一篇 2025-08-15 19:15
下一篇 2025-08-15 19:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信