智能进销存软件:革新现代库存管理
132
2023-11-13
【摘要】 本书摘自《OpenStack 云平台-部署与高可用实战》一书中第6.2.4节,肖睿 雷宇飞主编。
6.2.4 HDFS 的命令行操作
HDFS 部署完成之后,可以使用 HDFS 提供的命令行工具对文件执行相关操作。对
文件的操作是通过调用 Hadoop 的文件系统 Shell 实现的。具体的命令格式如下。
hadoop fshadoop fs -ls file:///home/hduser
该命令中,“-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小时内删除侵权内容。