Почему анонимный FTP на HDFS DistCp не работает?

Я попробовал команду ниже, чтобы скопировать данные 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)

person SunnyShah    schedule 04.03.2015    source источник


Ответы (1)


Вы должны заполнить имя пользователя, даже для «анонимного» входа.

Apache FTPClient (используемый внутри FTPFileSystem) всегда отправляет команду USER на FTP-сервер. Поэтому ему нужно какое-то имя пользователя, чтобы использовать его вместе.

Используйте имя пользователя «анонимный». Это обычная практика. Большинство FTP-клиентов, получив указание использовать «анонимный» вход в систему, будут автоматически использовать «анонимное» имя пользователя.

Если требуется пароль, используйте одну форму адреса электронной почты ("[email protected]").

person Martin Prikryl    schedule 04.03.2015