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