2016-04-28 2 views
1

私は70Gファイルをhdfsに入れたいので、これを行うには 'put'コマンドを使いました。しかし、次の例外があります。私は同じコマンドで小さなサイズのファイルを試しました、それは動作します。誰もが問題が何であるか知っていますか?ありがとう!HDFSはローカルファイルをhdfsに入れましたがUnresolvedAddressExceptionを受け取りました

WARN [DataStreamer for file /user/qzhao/data/sorted/WGC033800D_sorted.bam._COPYING_] hdfs.DFSClient (DFSOutputStream.java:run(628)) - DataStreamer Exception java.nio.channels.UnresolvedAddressException 
    at sun.nio.ch.Net.checkAddress(Net.java:127) 
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:644) 
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529) 
    at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1526) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1328) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1281) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:526) 
put: java.nio.channels.ClosedChannelException 
    at org.apache.hadoop.hdfs.DFSOutputStream.checkClosed(DFSOutputStream.java:1538) 
    at org.apache.hadoop.fs.FSOutputSummer.write(FSOutputSummer.java:98) 
    at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58) 
    at java.io.DataOutputStream.write(DataOutputStream.java:107) 
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:80) 
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:52) 
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:112) 
    at org.apache.hadoop.fs.shell.CommandWithDestination$TargetFileSystem.writeStreamToFile(CommandWithDestination.java:395) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.copyStreamToTarget(CommandWithDestination.java:327) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.copyFileToTarget(CommandWithDestination.java:303) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.processPath(CommandWithDestination.java:243) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.processPath(CommandWithDestination.java:228) 
    at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:306) 
    at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:278) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.processPathArgument(CommandWithDestination.java:223) 
    at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:260) 
    at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:244) 
    at org.apache.hadoop.fs.shell.CommandWithDestination.processArguments(CommandWithDestination.java:200) 
    at org.apache.hadoop.fs.shell.CopyCommands$Put.processArguments(CopyCommands.java:259) 
    at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:190) 
    at org.apache.hadoop.fs.shell.Command.run(Command.java:154) 
    at org.apache.hadoop.fs.FsShell.run(FsShell.java:287) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
    at org.apache.hadoop.fs.FsShell.main(FsShell.java:340) 
+0

にあなたの名前ノードですべての問題をスレーブ・ノードに関するエントリを追加しましたか? hdfs-site.xml.core-site.xmlの設定を確認できます –

+0

DNSまたはFireWallの問題ですか?すべてのノードのアドレスを確認してください。 – magooup

答えて

0

同様の問題が発生しました(小さなファイル - 作品、大きなファイル - はありません)。 問題は、私がマスターへの接続を設定していたが、スレーブへの接続がないことでした。私の場合は

私は単に/etc/hosts

0

同じコマンドが小さいサイズのファイルに対して機能しているため、HDFSにスペースの問題がある可能性があります。 hdfs dfsadmin -reportコマンドの出力を調べて、それが一杯であるかどうかを調べることができます。

hdfs dfs -put /path/to/local.file /user/USERNAME/path/to/dir-or-fileのようなコマンドを使用していると仮定します。そうでない場合は、あなたのコマンドを共有してください。

関連する問題