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

时间:2013-07-24 15:03:28

标签: hadoop copy hdfs

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

9 个答案:

答案 0 :(得分:211)

  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),浏览到要复制的文件,向下滚动页面并单击下载文件

答案 1 :(得分:19)

在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

答案 2 :(得分:14)

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

hadoop dfs -copyToLocal <input> <output>

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

答案 3 :(得分:5)

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

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/

答案 4 :(得分:1)

这对我的Ubuntu VM实例起作用了。

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

如果您的源“文件”被分成多个文件(可能是map-reduce的结果),这些文件位于同一目录树中,则可以使用以下命令将其复制到本地文件中:

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

答案 7 :(得分: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将出现在您当前的工作目录中

答案 8 :(得分:-2)

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