如何将文件从 HDFS 复制到本地文件系统

如何将文件从 HDFS 复制到本地文件系统。文件下没有文件的物理位置,甚至没有目录。我怎样才能把它们转移到我的本地进行进一步验证。我通过 Winscp 进行了尝试。

378507 次浏览
  1. bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
  2. bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
  3. 将浏览器指向 韦布(namenode_machine:50070) ,浏览到要复制的文件,向下滚动页面并单击 下载文件

为了将文件从 HDFS 复制到本地文件系统,可以运行以下命令:

hadoop dfs -copyToLocal <input> <output>

  • <input>: 要复制的 HDFS 目录路径(例如 g/mydata)
  • <output>: 目标目录路径(例如 ~/Document)

更新: Hadoop 3中不推荐使用 Hadoop

使用 hdfs dfs -copyToLocal <input> <output>

bin/hadoop fs -put /localfs/destination/path /hdfs/source/path

在 Hadoop 2.0中,

hdfs dfs -copyToLocal <hdfs_input_file_path> <output_path>

在哪里,

  • hdfs_input_file_path可能来源于 http://<<name_node_ip>>:50070/explorer.html

  • output_path是文件的本地路径,要将文件复制到其中。

  • 你也可以用 get代替 copyToLocal

你可以通过这两种方式来完成。

1.hadoop fs -get <HDFS file path> <Local system directory path>
2.hadoop fs -copyToLocal <HDFS file path> <Local system directory path>

例如:

我的文件位于 < strong >/source cedata/mydata.txt 我想在这个路径 < strong >/user/ravi/mydata 中将文件复制到 Local file system

hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/

这对我的 Ubuntu 虚拟机实例很有用。

Hdfs dfs-copToLocal [ hadoop 目录][ local 目录]

如果您的源“文件”在同一个目录树中的多个文件(可能是 map-reduce 的结果)中分离,您可以使用以下方法将其复制到本地文件:

hadoop fs -getmerge /hdfs/source/dir_root/ local/destination

如果你正在使用 docker,你必须执行以下步骤:

  1. 将文件从 hdfs 复制到 namenode (hadoop fs-get output/part-r-00000/out _ text)。 “/out _ text”将存储在 namenode 上

  2. 通过(docker cp namenode:/out _ text output.txt)将文件从 namenode 复制到本地磁盘

  3. Output.txt 会出现在你当前的工作目录上

1.- 记住给文件的名称,不要使用 hdfs dfs-put。用“ get”代替。请看下面。

$hdfs dfs-get/output-fileFolderName-In-hdfs