hadoopバージョン2.0.0およびCDH4にはSFTPファイルシステムがありますか?私はhadoopがFTPファイルシステムをサポートしていることを知っています。sftpに似たものはありますか?中小企業向けに提出されたパッチを見たことがありますが、それらを理解することはできませんでした。
3 に答える
hadoopdistcpの使用を検討してください。
こちらを確認してください。それは次のようになります:
hadoop distcp
-D fs.sftp.credfile=/user/john/credstore/private/mycreds.prop
sftp://myHost.ibm.com/home/biadmin/myFile/part1
hdfs:///user/john/myfiles
いくつかの調査の結果、現在、のために書かれhadoop
たものがないことがわかりました。したがって、SFTPチャネルを使用してデータを読み取りたい場合は、(非常に大きな問題であり、多くのクラスとメソッドを拡張およびオーバーライドします)を作成する必要があります。パッチはすでに開発されていますが、まだhadoopに統合されていません。から読み取るカスタマイズを取得しますが、これもで実装されていませんFileSystem
SFTP
SFTP FileSystem
InputFormat
streams
hadoop.
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}
これらのコマンドを試すときは、すべてのプレースホルダーを交換していることを確認してください。Hadoop2.8.5がインストールされているAWSEMR5.28.1で試してみました