📜  HDFS 命令

📅  最后修改于: 2021-10-27 06:34:54             🧑  作者: Mango

HDFS 是 Hadoop 生态系统的主要或主要组件,负责跨各个节点存储结构化或非结构化数据的大型数据集,从而以日志文件的形式维护元数据。要使用 HDFS 命令,首先需要使用以下命令启动 Hadoop 服务:

sbin/start-all.sh

要检查 Hadoop 服务是否已启动并正在运行,请使用以下命令:

jps

命令:

  1. ls:该命令用于列出所有文件。使用lsr进行递归方法。当我们想要文件夹的层次结构时,它很有用。

    句法:

    bin/hdfs dfs -ls  

    例子:

    bin/hdfs dfs -ls /  

    它将打印 HDFS 中存在的所有目录。 bin 目录包含可执行文件,因此bin/hdfs意味着我们想要 hdfs 的可执行文件,特别是dfs (分布式文件系统)命令。

  2. mkdir : 创建目录。在 Hadoop dfs 中,默认情况下没有主目录。所以让我们首先创建它。

    句法:

    bin/hdfs dfs -mkdir 
    
    creating home directory:
    
    hdfs/bin -mkdir /user
    hdfs/bin -mkdir /user/username -> write the username of your computer 
    

    例子:

    bin/hdfs dfs -mkdir  /geeks  =>  '/' means absolute path
    bin/hdfs dfs -mkdir  geeks2  =>   Relative path -> the folder will be 
                                      created relative to the home directory.
    

  3. touchz :它创建一个空文件。

    句法:

    bin/hdfs dfs  -touchz  

    例子:

    bin/hdfs dfs -touchz  /geeks/myfile.txt 

  4. copyFromLocal(或) put:将文件/文件夹从本地文件系统复制到 hdfs 存储。这是最重要的命令。本地文件系统是指操作系统上存在的文件。

    句法:

    bin/hdfs dfs -copyFromLocal   

    例如:假设我们有一个桌面文件AI.txt我们要复制到文件夹怪才出现在HDFS上。

    bin/hdfs dfs -copyFromLocal ../Desktop/AI.txt /geeks
    
    (OR)
    
    bin/hdfs dfs -put ../Desktop/AI.txt /geeks
    

  5. cat:打印文件内容。

    句法:

    bin/hdfs dfs -cat 

    例子:

    // print the content of AI.txt present
    // inside geeks folder.
    bin/hdfs dfs -cat /geeks/AI.txt ->
    

  6. copyToLocal(或)get:将文件/文件夹从 hdfs 存储复制到本地文件系统。

    句法:

    bin/hdfs dfs -copyToLocal  < 

    例子:

    bin/hdfs dfs -copyToLocal  /geeks   ../Desktop/hero  
    
    (OR)
    
    bin/hdfs dfs -get /geeks/myfile.txt  ../Desktop/hero
    

    myfile.txt的领夹将被复制到文件夹出现在桌面英雄怪才

    注意:请注意,在检查本地文件系统上存在的内容时,我们不会编写bin/hdfs。

  7. moveFromLocal:此命令将文件从本地移动到 hdfs。

    句法:

    bin/hdfs dfs -moveFromLocal     

    例子:

    bin/hdfs dfs -moveFromLocal  ../Desktop/cutAndPaste.txt   /geeks

  8. cp:该命令用于复制hdfs内的文件。让我们复制文件夹爱好者geeks_copied。

    句法:

    bin/hdfs dfs -cp    

    例子:

    bin/hdfs -cp /geeks  /geeks_copied

  9. mv:此命令用于在 hdfs 内移动文件。让我们从极客切粘贴文件myfile.txt的文件夹geeks_copied。

    句法:

    bin/hdfs dfs -mv   

    例子:

    bin/hdfs  -mv  /geeks/myfile.txt  /geeks_copied

  10. rmr:此命令递归地从 HDFS 中删除文件。当您要删除非空目录时,这是一个非常有用的命令。

    句法:

    bin/hdfs dfs -rmr 

    例子:

    bin/hdfs dfs -rmr  /geeks_copied -> It will delete all the content inside the 
                                           directory then the directory itself.
    

  11. du:它将给出目录中每个文件的大小。

    句法:

    bin/hdfs dfs -du  

    例子:

    bin/hdfs dfs -du /geeks

  12. dus::此命令将给出目录/文件的总大小。

    句法:

    bin/hdfs dfs -dus  

    例子:

    bin/hdfs dfs -dus /geeks

  13. stat:它会给出目录或路径的最后修改时间。简而言之,它将提供目录或文件的统计信息。

    句法:

    bin/hdfs  dfs -stat    

    例子:

    bin/hdfs dfs -stat /geeks

  14. setrep:此命令用于更改 HDFS 中文件/目录的复制因子。默认情况下,对于存储在 HDFS 中的任何内容(在 hdfs core-site.xml 中设置),它都是 3。

    示例 1:将存储在 HDFS 中的geeks.txt的复制因子更改为 6。

    bin/hdfs dfs -setrep -R -w 6 geeks.txt

    示例 2:将存储在 HDFS 中的目录 geeksInput的复制因子更改为 4。

    bin/hdfs dfs -setrep -R  4 /geeks

    注意: -w表示等待复制完成。 -R表示递归,我们将它用于目录,因为它们可能还包含许多文件和文件夹。

注意: HDFS 中有更多命令,但我们讨论了在使用 Hadoop 时常用的命令。您可以使用以下命令查看 dfs 命令列表:

bin/hdfs dfs