如何将文件从本地计算机发送到 Virtual Box 上的 HortonBox 实例 运行?

How to send files from Local Machine to HortonBox instance running on Virtual Box?

我在虚拟盒子上使用 Hortonbox 3.0.1 并使用 putty ssh 进入它。我的本地机器(Windows 10)中有一些文件,我想将其存储在 hadoop 文件系统中。

SSH-ing 进入 hortonbox 实例,给我实例的终端,这意味着来自 windows 实例的所有文件对终端不可见。 有什么办法可以把文件放到HDFS实例中吗?

我知道 WinSCP,但这并不能真正满足我的目的。 WinSCP 意味着我将文件发送到系统上,使用我的 ssh 将文件存储在 hadoop 上,然后在存储到数据节点上后从系统中删除文件。我可能是错的,但这似乎是额外的和多余的工作,我总是需要一个缓冲区来存储 hadoop 运行,对于非常大的文件,考虑到我首先需要存储整个文件,这个解决方案几乎肯定会失败文件在辅助磁盘上,然后通过名称节点将其发送到数据节点。有什么办法可以实现这个或我面临的问题是由于使用了 hortonbox 实例吗?组织如何处理将数据从多个节点发送到名称节点,然后再发送到数据节点?

首先,您不将数据发送到名称节点以将其放置在数据节点上。当您发出 hdfs put 命令时,从名称节点请求的唯一信息是要放置的文件的位置。

也就是说,如果你想完全跳过 SSH,你需要将 Namenode 和 datanode 端口从 VM 转发到你的主机,然后安装和配置 hadoop fs/hdfs 命令在您的 windows 主机上,以便您可以直接从 CMD 发出它们。

另一种方法是使用 Fuse/SFTP/NFS/Samba 从 Windows 挂载到 VM 中(在 Virtualbox GUI 中称为“共享文件夹”),然后您可以 运行 put 没有复制任何东西到 VM