hdfs命令
HDFS是一个分布式文件,旨在运行在大规模集群上。它的设计目标是存储超大规模数据集,并提供高吞吐量的数据访问。HDFS将文件划分为多个数据块,并将这些数据块分布存储在集群中的多个节点上,以实现数据的并行处理和高可靠性。
HDFS的架构包含组件:
NameNode:负责管理文件系统的命名空间、存储文件的元数据信息并协调数据块的存储和访问。DataNode:存储实际的数据块,并向NameNode报告数据块的存储信息。Secondary NameNode:定期合并和持久化NameNode的编辑日志,以便在NameNode故障时恢复文件系统。- 客户端:与HDFS交互的应用程序,可以读取、写入和删除文件。
HDFS命令选项的说明:
-ls:列出指定路径下的文件和目录。
-mkdir:创建一个新的目录。
-put:将本地文件或目录上传到HDFS。
-get:从HDFS下载文件或目录到本地文件系统。
-rm:删除HDFS中的文件或目录。
-mv:移动文件或目录。
-cat:显示文件的内容。
-chmod:更改文件或目录的权限。
-chown:更改文件或目录的所有者。
-chgrp:更改文件或目录的所属组。
-du:计算文件或目录的大小。
-copyFromLocal:从本地文件系统复制文件到HDFS。
-copyToLocal:从HDFS复制文件到本地文件系统。
-getmerge:将HDFS中的多个文件合并为一个本地文件。
-tail:显示文件的末尾内容。
-text:以文本格式显示文件的内容。
-count:统计文件和目录的数量。
-setrep:设置文件的副本数。
-touchz:在HDFS上创建一个空文件。
-test:检查文件或目录的存在性。
1. 列出指定路径下的文件和目录
[root@master hadoop-3.3.2]# hdfs dfs -ls /
2、创建新的目录
[root@master hadoop-3.3.2]# hdfs dfs -mkdir -p /usr/hadoop/local
3、本地文件上传HDFS
[root@master hadoop-3.3.2]# hdfs dfs -put README.txt /usr/hadoop/local
4、从 HDFS 下载文件或目录到本地文件系统
[root@master ~]# hdfs dfs -get /usr/hadoop/local/README.txt .
5. 删除 HDFS 中的文件或目录。
hdfs dfs -rm /user/hadoop/file.txt
[root@slaveone ~]# hdfs dfs -cat /usr/hadoop/local/README.txt //显示文件内容 [root@slaveone ~]# hdfs dfs -du /usr/hadoop/local/README.txt //计算文件大小 [root@slaveone ~]# hdfs dfs -text /usr/hadoop/local/README.txt // 文本展示文件内容 [root@slaveone ~]# hdfs dfs -count /usr/hadoop/local //统计 /user/hadoop/local 目录下的文件和目录的数量
6、hadoop fs -test -e 是要检查的HDFS文件的路径。如果文件存在,命令返回0;如果文件不存在,命令返回非0值
hadoop fs -test -e /user/hadoop/myfile.txt if [ $? -eq 0 ]; then echo "文件存在" # 执行相应操作... else echo "文件不存在" # 执行其他操作或跳过处理... fi
立志如山 静心求实
浙公网安备 33010602011771号