ad

打开《OpenStack 云平台-部署与高可用实战》_6.2.4 HDFS 的命令行操作

网友投稿 132 2023-11-13

【摘要】 本书摘自《OpenStack 云平台-部署与高可用实战》一书中第6.2.4节,肖睿 雷宇飞主编。

6.2.4 HDFS 的命令行操作

HDFS 部署完成之后,可以使用 HDFS 提供的命令行工具对文件执行相关操作。对

文件的操作是通过调用 Hadoop 的文件系统 Shell 实现的。具体的命令格式如下。

hadoop fs 其中, “hadoop” 命令位于$HADOOP_HOME/bin 目录下, “fs” 表示 HDFS 文件系 统的 shell 程序,“” 表示 fs 中的子命令,且功能和作用类似于Linux Shell 命令。 如查看本地/home/hduser目录下的文件列表可以使用如下命令。

hadoop fs -ls file:///home/hduser

打开《OpenStack 云平台-部署与高可用实战》_6.2.4  HDFS 的命令行操作

该命令中,“-1s” 表示使用ls 子命令,作用是列出目录下的文件列表, “file://” 表示 本地文件系统,“/home/hduser” 表示具体目录结构。

Hadoop 的文件系统支持对多种文件系统的访问,如本地文件系统和 HDFS, 通 过 URI 前缀加以区分,如 “file://path” 和 “hdfs://NameNodeIP:NameNodePort/path”。

其中,“file://” 表示本地文件系统,“hdfs://NameNodeIP:NameNodePort/” 表示 HDFS。 如果省略 URL 前缀,则使用 Hadoop 配 置 (core-site.xml 属性 fs.defaultFS) 中指定 的 文 件 系 统 ,fs.defaultFS 的默认值为 “file:///” 。 由于在前面配置时将其指定为 “hdfs://node1:9000”, 所以在上面的命令中要访问本地文件系统必须加上 “file://”

前缀。

查看 HDFS 文件系统中“/home/hduser” 目录下的文件列表可以使用如下命令。

hadoop fs -ls /home/hduser

下面介绍 HDFS 中常用的子命令。

(1)创建目录子命令: mkdir

创建目录子命令的语法如下。

hadoop fs-mkdir <目录名/路径>

例如:执行以下命令可以创建 HDFS 中的目录。

//在 HDFS 中创建“/user” 目录

//在HDFS中创建“/user/hadoop” 目录

hadoop fs-mkdir/user/hadoop/dirl /user/hadoop/dir2 //同时创建多个目录

(2)查看列表文件子命令: ls

查看列表文件子命令的语法如下。

hadoop fs -Is<参数>

上述命令中,如果参数是一个文件,则输出结果包含文件名、文件大小、修改 日期、修改时间、权限用户 ID 和组 ID; 如果参数是一个目录,则返回该目录子文 件列表。

(3)查看文件子命令: cat

查看文件子命令的语法如下。

hadoop fs -cat URI [URI…]

URI 代表指定文件的路径。例如:执行以下命令查看具体文件。

hadoop fs -cat/input2/filel.txt /input2/file2.txt //查看 HDFS 文件filel.txt 和 file2.txt

hadoop fs-cat file://file3 //查看本地系统文件/file3

(4)转移文件类子命令: put 、get 、mv 、cp

① put 子命令

put 子命令用于从本地文件系统复制文件至HDFS 中。具体的语法如下。

hadoop fs -put

其 中 ,localsrc 代表本地文件, dst 代表 HDFS 文件。注意:该命令中的路径参数不

受 fs.defaultFS 属性的影响。

例如:通过以下命令将本地文件系统的文件复制至HDFS 中 。

//将本地文件复制到HDFS 目录“/input2”。

hadoop fs -put /home/hduser/file/file1.txt /input2

1/将多个本地文件复制到 HDFS 目录“/input2”。

hadoop fs -put/home/hduser/file/filel.txt/home/hduser/file/file2.txt /input2

//从标准输入中读取输入,按Ctrl+C组合键退出并保存到“file3”。

hadoop fs-put-/input2/file3

② get 子命令

get 子命令用于从HDFS 中复制文件至本地文件系统,属于put 子命令的逆操作。具

体的语法如下。

hadoop fs -get

其中,src 代表HDFS 文件,localdst 代表本地文件系统中的文件,同样不受 fs.defaultFS 属性影响。

例如:执行以下命令,从HDFS 中复制文件到本地文件系统。

hadoop fs-get /input2/file1 $HOME/file

③ mv 子命令

mv 子命令用于从源路径移动文件到目标路径,允许有多个源路径,但目标路径必

须是一个。要求所有路径都必须是同一文件系统 URI 格式。具体语法如下

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_9.1 爬虫框架
下一篇:实战之路《Excel 数据处理与分析实战宝典_第2版》_8.6 INDIRECT 函数
相关文章
×