为什么匿名ftp到hdfs distcp不起作用?

pb3s4cty  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(413)

我试着用下面的命令把ftp数据复制到hdfs,

hadoop distcp ftp://ftp.ncdc.noaa.gov/pub/data/noaa/1901/ data/noaa/1901/

这是我收到的错误

15/03/04 11:29:13 INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=false, deleteMissing=false, ignoreFailures=false, maxMaps=20, sslConfigurationFile='null', copyStrategy='uniformsize', sourceFileListing=null, sourcePaths=[ftp://ftp.ncdc.noaa.gov/pub/data/noaa/1901], targetPath=data/noaa/1901, targetPathExists=false, preserveRawXattrs=false}
15/03/04 11:29:13 INFO client.RMProxy: Connecting to ResourceManager at m-hadoop-master.c.swift-influence-86909.internal/10.240.143.253:8032
15/03/04 11:29:14 ERROR tools.DistCp: Exception encountered 
java.io.IOException: Login failed on server - ftp.ncdc.noaa.gov, port - 21 as user 'null'
    at org.apache.hadoop.fs.ftp.FTPFileSystem.connect(FTPFileSystem.java:144)
    at org.apache.hadoop.fs.ftp.FTPFileSystem.getFileStatus(FTPFileSystem.java:405)
    at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57)
    at org.apache.hadoop.fs.Globber.glob(Globber.java:252)
    at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1625)
    at org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:77)
    at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:84)
    at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:353)
    at org.apache.hadoop.tools.DistCp.execute(DistCp.java:160)
    at org.apache.hadoop.tools.DistCp.run(DistCp.java:121)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.tools.DistCp.main(DistCp.java:401)
pkln4tw6

pkln4tw61#

你必须填写用户名,即使是“匿名”登录。
Apache FTPClient (内部使用) FTPFileSystem )总是发送 USER 命令发送到ftp服务器。所以它需要一些用户名来使用。
使用用户名“anonymous”。这是一种常见的做法。大多数ftp客户机在被指示使用“匿名”登录时,会在内部自动使用“匿名”用户名。
如果需要密码,请使用电子邮件地址(“user@example.com").

相关问题