【问题标题】:How to copy a data directory from hdfs to local fs?如何将数据目录从hdfs复制到本地fs?
【发布时间】:2019-03-20 11:53:05
【问题描述】:

我开始需要使用以下方式备份整个 hadoop datanode 数据目录:

hdfs dfs -copyToLocal /var/hadoop/dfs/name/data /home/ubuntu/hadoopfiles

我得到了一个错误:

/var/hadoop/dfs/name/data 的“没有这样的文件 opr 目录”

经过一番搜索,我发现这个 Stack Overflow 主题带有示例: https://stackoverflow.com/questions/28213116/hadoop-copy-a-local-file-system-folder-to-hdfs#=

但即使我这样做:

hdfs dfs -ls

我收到错误消息 ls: `.': No such file or directory

我也看过其他帖子,这似乎是一个很常见的问题,但我无法找到适合我的解决方案。

谢谢。

【问题讨论】:

  • 你能删除那个./ 吗?我不明白你为什么把./ 放在hdfs dfs 之前?

标签: hadoop get hdfs


【解决方案1】:

首先,使用

hadoop fs -get /theFolder

将其复制到您在盒子上通过 ssh 进入的当前目录。

然后您可以使用 scp 或我偏好的 rsync 在您的机器和本地系统之间复制文件,就像这样。以下是我在使用 -get 后使用 rsync 的方式,但仍位于同一目录中:

rsync -av ./theFolder username@yourlocalmachine:/home/username

这会将文件夹从您机器上的本地 fs 复制到您机器 fs 上的主文件夹中。在这两种情况下,请务必将用户名替换为您的实际用户名,并将您的本地机器替换为您机器的主机名或 IP 地址。

请参考这个答案

Copy from Hadoop to local machine

或查看此链接scp method

【讨论】:

  • 感谢您的回答。对我面临的真正问题存在误解。我在将数据从一台机器传输到另一台机器时没有任何问题。关键是,如果我遵循“hdfs dfs”或“hadoop fs”命令的文档,似乎我希望从中获取数据的 (hadoop 数据节点目录)永远找不到“没有这样的文件或目录”错误。我正在尝试复制到同一 hadoop 数据节点服务器的本地文件系统。从您的回答来看,我似乎不需要“hadoop fs -get”命令中的任何 参数,只需要 。对吗?
  • 我更仔细地阅读了您的回答。实际上,在您的示例中, (hadoop 数据)是 /theFolder ,目标是当前目录。这对我不起作用。正如我在原始问题中所写的那样,“hadoop fs /theFolder”。会给我“theFolder”的“没有这样的文件或目录”。
猜你喜欢
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多