hadoop版本2.0.0和CDH4是否有SFTP文件系统?我知道hadoop支持FTP文件系统。 sftp有类似的东西吗?我已经看到一些补丁提交了虽然无法理解它们。
答案 0 :(得分:3)
考虑使用hadoop distcp。
Check here.这就像是:
hadoop distcp
-D fs.sftp.credfile=/user/john/credstore/private/mycreds.prop
sftp://myHost.ibm.com/home/biadmin/myFile/part1
hdfs:///user/john/myfiles
答案 1 :(得分:0)
经过一些研究,我发现hadoop
目前没有为FileSystem
编写SFTP
。因此,如果您希望使用SFTP通道读取数据,则必须编写SFTP FileSystem
(这是一个非常重要的事项,扩展和覆盖许多类和方法),其中的补丁已经开发,但尚未开发集成到hadoop中,否则会获得从InputFormat
读取的自定义streams
,这在hadoop.
答案 2 :(得分:0)
您需要确保core-site.xml的fs.sftp.impl属性设置为org.apache.hadoop.fs.sftp.SFTPFileSystem值
发布此hadoop命令将起作用。下面给出了几个样本
hadoop上的命令
hadoop fs -ls /
与SFTP等效
hadoop fs -D fs.sftp.user.{hostname}={username} -D fs.sftp.password.{hostname}.{username}={password} -ls sftp://{hostname}:22/
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上对其进行了尝试