155

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

4

9 回答 9

267
  1. bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
  2. bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
  3. 将您的网络浏览器指向HDFS WEBUI ( namenode_machine:50070),浏览到您要复制的文件,向下滚动页面并单击下载文件
于 2013-07-24T15:11:43.360 回答
35

在 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

于 2016-08-08T09:20:33.407 回答
21

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

hadoop dfs -copyToLocal <input> <output>

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

更新:Hadoop 在 Hadoop 3 中已弃用

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

于 2014-09-16T10:45:31.037 回答
6

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

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

前任:

我的文件位于/sourcedata/mydata.txt 我想将文件复制到此路径中的本地文件系统/user/ravi/mydata

hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/
于 2017-02-06T19:46:13.973 回答
5

如果您的源“文件”被拆分为位于同一目录树中的多个文件(可能是 map-reduce 的结果),您可以将其复制到本地文件:

hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
于 2019-05-07T17:16:07.357 回答
3

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

hdfs dfs -copyToLocal [hadoop 目录] [本地目录]

于 2018-03-06T15:00:21.750 回答
1

1.-记住你给文件的名字,而不是使用 hdfs dfs -put。请改用“获取”。见下文。

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

于 2021-02-25T23:57:02.790 回答
0

如果您使用的是 docker,则必须执行以下步骤:

  1. 将文件从 hdfs 复制到 namenode (hadoop fs -get output/part-r-00000 /out_text)。“/out_text”将存储在名称节点上。

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

  3. output.txt 将在您当前的工作目录中

于 2019-09-03T13:44:09.710 回答
-3
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path 
于 2016-01-29T02:46:08.710 回答