如何将文件从HDFS复制到本地文件系统。文件下没有文件的物理位置,甚至没有目录。我如何将它们移动到我的本地进行进一步的验证。我是通过winscp尝试的。
答案 0 :(得分:211)
bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
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,则必须执行以下步骤:
将文件从hdfs复制到namenode(hadoop fs -get output / part-r-00000 / out_text)。 “ / out_text”将存储在名称节点上。
通过(docker cp namenode:/ out_text output.txt)将文件从namenode复制到本地磁盘
output.txt将出现在您当前的工作目录中
答案 8 :(得分:-2)
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path