作者:qiuqiu | 来源:互联网 | 2023-09-05 01:35
HDFS(HadoopDistributedFileSystem)是Hadoop应用用到的一个最主要的分布式存储系统。一个HDFS集群主要由一个NameNode和多个Datanod
? ??HDFS(Hadoop Distributed File System)是Hadoop应用用到的一个最主要的分布式存储系统。一个HDFS集群主要由一个NameNode和多个Datanode组成:Namenode管理文件系统的元数据,而Datanode存储了实际的数据。基本上,客户端是通过联系Namenode以获取文件的元数据或修饰属性,而真正的文件I/O操作是Namenode直接和Datanode进行交互的。???
??? 调用文件系统命令应使用bin/hadoop fs 的形式。所有的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme(见core-site.xml配置文件的fs.default.name属性)。一个HDFS文件或目录比如/user/myuser可以表示成hdfs://namenode:namenodeport/user/myuser,或者更简单的/user/myuser(假设你配置文件中的默认值是namenode:namenodeport)。接下来从查询类、新增类、删除类及修改类四个角度来列举HDFS命令。
1?????? 查询类
1.1????????????? 查看指定目录下内容
hadoop dfs –ls /user/myuser
1.2????????????? lsr
hadoop fs -lsr
ls命令的递归版本。
1.3????????????? 打开某个已存在文件
hadoop fs -cat URI [URI ...]
hadoop dfs -cat /user/myuser/data.txt file:///file hdfs://host:port/user/myuser
1.4????????????? 将hadoop上某个文件down至本地已有目录下
hadoop fs –get /user/test/bqh/in.txt /home/test/
1.5????????????? 将hadoop指定目录下所有内容保存为一个文件,同时down至本地
hadoop dfs –getmerge /user /home/t
1.6????????????? copyToLocal
hadoop fs -copyToLocal URI
除了限定目标路径是一个本地文件外,和get命令类似
1.7????????????? du
hadoop fs -du URI [URI ...]
显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
1.8????????????? dus
hadoop fs -dus
显示文件的大小。
1.9????????????? stat
hadoop fs -stat URI [URI ...]
返回指定路径的统计信息。
1.10??????? tail
hadoop fs -tail URI
将文件尾部的内容输出到stdout。
1.11??????? test
hadoop fs -test -[ezd] URI
-e? 检查文件是否存在。如果存在则返回0。
-z? 检查文件是否是0字节。如果是则返回0.
-d? 检查路径是个目录,则返回1,否则返回0.
1.12??????? text
hadoop fs -text
将源文件输出为文本格式。
2?????? 新增类
2.1????????????? mkdir
hadoop fs -mkdir
接受路径指定的URI作为参数,创建这些目录。类似于Unix的mkdir -p,它会创建路径中的各级父目录。
2.2????????????? 将本地文件存储至hadoop
hadoop fs –put /home/myuser/file.txt? /user/t???
2.3????????????? 将本地文件夹存储至hadoop
hadoop fs –put /home/t/dir_name /user/t
2.4????????????? 在hadoop指定目录内创建新目录
hadoop fs –mkdir /user/myuser/t
2.5????????????? 在hadoop指定目录下新建一个空文件
hadoop? fs? -touchz? /user/myuser/new.txt
2.6????????????? copyFromLocal
hadoop fs -copyFromLocal URI除了限定资源路径是一个本地文件外,和put命令相似。
2.7????????????? moveFromLocal
hadoop dfs -moveFromLocal
3?????? 删除类
3.1????????????? 删除hadoop上指定文件
hadoop fs –rm /user/myuser/ok.txt
hadoop fs –rmr /user/myuser/ok.txt
3.2????????????? 删除hadoop上指定文件夹(包含子目录等)
hadoop fs –rmr /user/myuser/t
3.3????????????? Expunge
hadoop fs -expunge
清空回收站
4?????? 修改类
4.1????????????? 将hadoop上某个文件重命名
hadoop fs ?–mv ?/user/test.txt? /user/ok.txt?
4.2??? 改变文件必属的组。
hadoop fs -chgrp [-R] GROUP [URI ...]
使用-R将使改变在目录结构下递归进行。
4.3????????????? 改变文件的权限
hadoop fs -chmod [-R] URI [URI ...]
使用-R将使改变在目录结构下递归进行。
4.4????????????? 改变文件的拥有者
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI]
使用-R将使改变在目录结构下递归进行。
4.5????????????? cp
hadoop fs -cp URI [URI ...]
将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
?
?
?