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

 

 

posted on 2024-12-13 22:14  溪水静幽  阅读(40)  评论(0)    收藏  举报