hadoop中的SFTP文件系统

hadoop中的SFTP文件系统,hadoop,Hadoop,hadoop版本2.0.0和CDH4是否有SFTP文件系统?我知道hadoop支持FTP文件系统。它有类似的sftp吗?我已经看到一些sme提交的补丁程序,尽管它们没有意义 经过一些研究,我发现hadoop目前没有为SFTP编写的文件系统。因此,如果您希望使用SFTP通道读取数据,您必须编写一个SFTP文件系统(这是一个相当大的任务,扩展并覆盖了许多类和方法),其中的补丁已经开发出来,但尚未集成到hadoop中,否则将获得一个自定义的InputFormat,该格式读取流,这在hadoop中也没有

hadoop版本2.0.0和CDH4是否有SFTP文件系统?我知道hadoop支持FTP文件系统。它有类似的sftp吗?我已经看到一些sme提交的补丁程序,尽管它们没有意义

经过一些研究,我发现
hadoop
目前没有为
SFTP
编写的
文件系统。因此,如果您希望使用SFTP通道读取数据,您必须编写一个
SFTP文件系统
(这是一个相当大的任务,扩展并覆盖了许多类和方法),其中的补丁已经开发出来,但尚未集成到hadoop中,否则将获得一个自定义的
InputFormat
,该格式读取
,这在
hadoop中也没有实现。

考虑使用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

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

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

  • ls命令
  • hadoop上的命令

    SFTP的等价物

  • Distcp命令
  • hadoop上的命令

    SFTP的等价物


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

    hi RadAI-您是否设法优雅地解决了这个问题(sftp->hdfs://)?我对这个话题很感兴趣。。。
    hadoop fs -ls /
    
    hadoop fs -D fs.sftp.user.{hostname}={username} -D fs.sftp.password.{hostname}.{username}={password} -ls sftp://{hostname}:22/
    
    hadoop distcp {sourceLocation} {destinationLocation}
    
    hadoop distcp -D fs.sftp.user.{hostname}={username} -D fs.sftp.password.{hostname}.{username}={password} sftp://{hostname}:22/{sourceLocation} {destinationLocation}