如何将文件从 HDFS 复制到本地文件系统。文件下没有文件的物理位置,甚至没有目录。我如何将它们移动到我的本地进行进一步验证。我通过 winscp 进行了尝试。
9 回答
bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
- 将您的网络浏览器指向HDFS WEBUI (
namenode_machine:50070
),浏览到您要复制的文件,向下滚动页面并单击下载文件。
在 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
为了将文件从 HDFS 复制到本地文件系统,可以运行以下命令:
hadoop dfs -copyToLocal <input> <output>
<input>
:要复制的 HDFS 目录路径(例如 /mydata)<output>
: 目标目录路径(例如~/Documents)
更新:Hadoop 在 Hadoop 3 中已弃用
利用hdfs dfs -copyToLocal <input> <output>
您可以通过这两种方式完成。
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/
如果您的源“文件”被拆分为位于同一目录树中的多个文件(可能是 map-reduce 的结果),您可以将其复制到本地文件:
hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
这在我的 Ubuntu 虚拟机实例上对我有用。
hdfs dfs -copyToLocal [hadoop 目录] [本地目录]
1.-记住你给文件的名字,而不是使用 hdfs dfs -put。请改用“获取”。见下文。
$hdfs dfs -get /output-fileFolderName-In-hdfs
如果您使用的是 docker,则必须执行以下步骤:
将文件从 hdfs 复制到 namenode (hadoop fs -get output/part-r-00000 /out_text)。“/out_text”将存储在名称节点上。
通过 (docker cp namenode:/out_text output.txt) 将文件从 namenode 复制到本地磁盘
output.txt 将在您当前的工作目录中
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path