2

hadoop 版本 2.0.0 和 CDH4 是否有 SFTP 文件系统?我知道 hadoop 支持 FTP Filesystem 。sftp 有类似的东西吗?我已经看到了一些为 sme 提交的补丁,虽然无法理解它们..

4

3 回答 3

3

考虑使用 hadoop distcp。

在这里检查。那将是这样的:

hadoop distcp
  -D fs.sftp.credfile=/user/john/credstore/private/mycreds.prop
  sftp://myHost.ibm.com/home/biadmin/myFile/part1
  hdfs:///user/john/myfiles
于 2014-08-13T21:24:38.950 回答
0

经过一番研究,我发现hadoop目前没有FileSystemSFTP. 因此,如果您希望使用 SFTP 通道读取数据,则必须编写一个SFTP FileSystem(这很重要,扩展和覆盖许多类和方法),其中的补丁已经开发,尽管尚未集成到 hadoop 中,否则得到一个定制InputFormat的从 读取的streams,这同样没有在hadoop.

于 2012-12-31T12:59:54.943 回答
0

您需要确保 core-site.xml 的属性 fs.sftp.impl 设置为 org.apache.hadoop.fs.sftp.SFTPFileSystem

发布此 hadoop 命令将起作用。下面给出了几个样本

  1. ls 命令

hadoop 上的命令

hadoop fs -ls /

相当于 SFTP

hadoop fs -D fs.sftp.user.{hostname}={username} -D fs.sftp.password.{hostname}.{username}={password} -ls sftp://{hostname}:22/
  1. Distcp 命令

hadoop 上的命令

hadoop distcp {sourceLocation} {destinationLocation}

相当于 SFTP

hadoop distcp -D fs.sftp.user.{hostname}={username} -D fs.sftp.password.{hostname}.{username}={password} sftp://{hostname}:22/{sourceLocation} {destinationLocation}

确保在尝试这些命令时替换所有占位符。我在安装了 Hadoop 2.8.5 的 AWS EMR 5.28.1 上尝试了它们

于 2020-05-13T15:34:27.917 回答