HDFS 是 Hadoop 生态系统的主要或主要组件,负责跨各个节点存储结构化或非结构化数据的大型数据集,从而以日志文件的形式维护元数据。要使用 HDFS 命令,首先需要使用以下命令启动 Hadoop 服务:
sbin/start-all.sh
要检查 Hadoop 服务是否已启动并正在运行,请使用以下命令:
jps
命令:
- ls:该命令用于列出所有文件。使用lsr进行递归方法。当我们想要文件夹的层次结构时,它很有用。
句法:
bin/hdfs dfs -ls
例子:
bin/hdfs dfs -ls /
它将打印 HDFS 中存在的所有目录。 bin 目录包含可执行文件,因此bin/hdfs意味着我们想要 hdfs 的可执行文件,特别是dfs (分布式文件系统)命令。
- 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.
- touchz :它创建一个空文件。
句法:
bin/hdfs dfs -touchz
例子:
bin/hdfs dfs -touchz /geeks/myfile.txt
- 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
- cat:打印文件内容。
句法:
bin/hdfs dfs -cat
例子:
// print the content of AI.txt present // inside geeks folder. bin/hdfs dfs -cat /geeks/AI.txt ->
- 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。
- moveFromLocal:此命令将文件从本地移动到 hdfs。
句法:
bin/hdfs dfs -moveFromLocal
例子:
bin/hdfs dfs -moveFromLocal ../Desktop/cutAndPaste.txt /geeks
- cp:该命令用于复制hdfs内的文件。让我们复制文件夹爱好者到geeks_copied。
句法:
bin/hdfs dfs -cp
例子:
bin/hdfs -cp /geeks /geeks_copied
- mv:此命令用于在 hdfs 内移动文件。让我们从极客切粘贴文件myfile.txt的文件夹geeks_copied。
句法:
bin/hdfs dfs -mv
例子:
bin/hdfs -mv /geeks/myfile.txt /geeks_copied
- 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.
- du:它将给出目录中每个文件的大小。
句法:
bin/hdfs dfs -du
例子:
bin/hdfs dfs -du /geeks
- dus::此命令将给出目录/文件的总大小。
句法:
bin/hdfs dfs -dus
例子:
bin/hdfs dfs -dus /geeks
- stat:它会给出目录或路径的最后修改时间。简而言之,它将提供目录或文件的统计信息。
句法:
bin/hdfs dfs -stat
例子:
bin/hdfs dfs -stat /geeks
- 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