hadoop 版本 2.0.0 和 CDH4 是否有 SFTP 文件系统?我知道 hadoop 支持 FTP Filesystem 。sftp 有类似的东西吗?我已经看到了一些为 sme 提交的补丁,虽然无法理解它们..
问问题
5278 次
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
目前没有FileSystem
为SFTP
. 因此,如果您希望使用 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 命令将起作用。下面给出了几个样本
- 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/
- 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 回答