在Hadoop中将文件从本地文件系统复制到HDFS时出错 [英] error while copying the files from local file system to HDFS in Hadoop

查看:147
本文介绍了在Hadoop中将文件从本地文件系统复制到HDFS时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <$>我使用hadoop来处理文件,目前我正在尝试使用下面的命令将文件从本地文件系统复制到HDFS。 c $ c> hadoop fs -put d:\hadoop\weblogs/so/data/weblogs 

出现如下错误:

  c:\ Hadoop \ hadoop-1.1.0-SNAPSHOT> hadoop fs -put d :\hadoop\weblogs/so/data/weblog 
s
12/12/03 19:05:16 WARN hdfs.DFSClient:DataStreamer异常:org.apache.hadoop
.ipc .RemoteException:java.io.IOException:File / so / data / weblogs / weblogs / u_ex121
10418.log只能复制到0个节点,而不是1
,位于org.apache.hadoop.hdfs .server.namenode.FSNamesystem.getAdditionalBloc
k(FSNamesystem.java:1557)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.jav
a:695)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccesso rImpl.invoke(NativeMethodAccessorImpl。
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java :597)
at org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:563)
at org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server。 java:1393)
at org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:1389)
at java.security.AccessController.doPrivileged(Native Method)
在javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
tion.java:1135)
at org.apache.hadoop.ipc.Server $ Handler.run(Server.java:1387)

at org.apache.hadoop.ipc.Client.call(Client.java:1070)
at org.apache.hadoop.ipc.RPC $ Invoker.invoke(RPC.java:225)
at $ Proxy1.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Metho d)在sun.reflect.NativeMethodAccessorImpl.invoke处使用
(NativeMethodAccessorImpl。
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java :597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryI
nvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler。 invoke(RetryInvocat
ionHandler.java:59)
at $ Proxy1.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream.locateFollowingBlock
(DFSClient .java:3518)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream.nextBlockOutputStrea
m(DFSClient.java:3381)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream .access $ 2500(DFSClien
t.java:2593)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream $ DataStreamer.run(DFS
Client.java:2833)

12/12/03 19:05:16 WARN hdfs.DFSClient:错误恢复块null datanod
e [0]节点== null
12/12/03 19:05:16 WARN hdfs.DFSClient:无法获取块位置。源文件
e/so/data/weblogs/weblogs/u_ex12110418.log - 正在中止...
put:java.io.IOException:File /so/data/weblogs/weblogs/u_ex12110418.log可以将
复制到0个节点,而不是1
12/12/03 19:05:16错误hdfs.DFSClient:异常关闭文件/ so / data / weblogs /
weblogs /u_ex12110418.log:org.apache.hadoop.ipc.RemoteException:java.io.IOExce
ption:文件/so/data/weblogs/weblogs/u_ex12110418.log只能被复制t
o 0节点,而不是1
在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBloc
k(FSNamesystem.java:1557)
在org.apache.hadoop.hdfs.server。 namenode.NameNode.addBlock(NameNode.jav
a:695)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:563)
在org.apache .hadoop.ipc.Server $ Handler $ 1.run(Server.java:1393)
at org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:1389)
at java .security.AccessController.doPrivileged(本地方法)
位于javax.security.auth.Subject.doAs(Subject.java:396)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
tion.java:1135)
在org.apache.hadoop.ipc.Server $ Handler.run(Server.java:1387)

org.apache.hadoop.ipc。 RemoteException:java.io.IOException:File / so / data / weblog
s / weblogs / u_ex12110418.log只能复制到0节点,而不是1
,位于org.apache.hadoop.hdfs.server .namenode.FSNamesystem.getAdditionalBloc
k(FSNamesystem.java:1557)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.jav
a:695)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java :597)
at org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:563)
at org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server。 java:1393)
at org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:1389)
at java.security.AccessController.doPrivileged(Native Method)
在javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
tion.java:1135)
at org.apache.hadoop.ipc.Server $ Handler.run(Server.java:1387)

at org.apache.hadoop.ipc.Client.call(Client.java:1070)
at org.apache.hadoop.ipc.RPC $ Invoker.invoke(RPC.java:225)
at $ Proxy1.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Metho d)在sun.reflect.NativeMethodAccessorImpl.invoke处使用
(NativeMethodAccessorImpl。
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java :597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryI
nvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler。 invoke(RetryInvocat
ionHandler.java:59)
at $ Proxy1.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream.locateFollowingBlock
(DFSClient .java:3518)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream.nextBlockOutputStrea
m(DFSClient.java:3381)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream .access $ 2500(DFSClien
t.java:2593)
at org.apache.hadoop.hdfs.DFSClient $ DFSOutputStream $ DataStreamer.run(DFS
Client.java:2833)

c:\ Hadoop \hadoop-1.1.0-SNAPSHOT>

任何人都可以让我知道,上述命令有什么错误,以及需要做什么为了避免这个错误?

解决方案

其中之一: 具有HDFS的远程系统(如配置中指定的)尚未启动

  • 存在网络问题,无法与远程系统连接

  • 您在HDFS文件系统上的磁盘空间不足

  • 您配置了错误的远程系统。


  • I am using hadoop for processing the files, presently i am trying to copy the files from local file system to HDFS using the command below

    hadoop fs -put d:\hadoop\weblogs /so/data/weblogs 
    

    Got the error as below

    c:\Hadoop\hadoop-1.1.0-SNAPSHOT>hadoop fs -put d:\hadoop\weblogs /so/data/weblog
    s
    12/12/03 19:05:16 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop
    .ipc.RemoteException: java.io.IOException: File /so/data/weblogs/weblogs/u_ex121
    10418.log could only be replicated to 0 nodes, instead of 1
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBloc
    k(FSNamesystem.java:1557)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.jav
    a:695)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1393)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1389)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAs(Subject.java:396)
            at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
    tion.java:1135)
            at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1387)
    
            at org.apache.hadoop.ipc.Client.call(Client.java:1070)
            at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
            at $Proxy1.addBlock(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryI
    nvocationHandler.java:82)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocat
    ionHandler.java:59)
            at $Proxy1.addBlock(Unknown Source)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock
    (DFSClient.java:3518)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStrea
    m(DFSClient.java:3381)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2500(DFSClien
    t.java:2593)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFS
    Client.java:2833)
    
    12/12/03 19:05:16 WARN hdfs.DFSClient: Error Recovery for block null bad datanod
    e[0] nodes == null
    12/12/03 19:05:16 WARN hdfs.DFSClient: Could not get block locations. Source fil
    e "/so/data/weblogs/weblogs/u_ex12110418.log" - Aborting...
    put: java.io.IOException: File /so/data/weblogs/weblogs/u_ex12110418.log could o
    nly be replicated to 0 nodes, instead of 1
    12/12/03 19:05:16 ERROR hdfs.DFSClient: Exception closing file /so/data/weblogs/
    weblogs/u_ex12110418.log : org.apache.hadoop.ipc.RemoteException: java.io.IOExce
    ption: File /so/data/weblogs/weblogs/u_ex12110418.log could only be replicated t
    o 0 nodes, instead of 1
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBloc
    k(FSNamesystem.java:1557)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.jav
    a:695)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1393)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1389)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAs(Subject.java:396)
            at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
    tion.java:1135)
            at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1387)
    
    org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /so/data/weblog
    s/weblogs/u_ex12110418.log could only be replicated to 0 nodes, instead of 1
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBloc
    k(FSNamesystem.java:1557)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.jav
    a:695)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1393)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1389)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAs(Subject.java:396)
            at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
    tion.java:1135)
            at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1387)
    
            at org.apache.hadoop.ipc.Client.call(Client.java:1070)
            at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
            at $Proxy1.addBlock(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryI
    nvocationHandler.java:82)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocat
    ionHandler.java:59)
            at $Proxy1.addBlock(Unknown Source)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock
    (DFSClient.java:3518)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStrea
    m(DFSClient.java:3381)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2500(DFSClien
    t.java:2593)
            at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFS
    Client.java:2833)
    
    c:\Hadoop\hadoop-1.1.0-SNAPSHOT>
    

    Can anyone please let me know, whats wrong in the above command, and what need to be done in order to avoid this error ?

    解决方案

    One of:

    • The remote system with HDFS (as specified in the config) hasn't been started
    • There is a network problem preventing connectivity with the remote system
    • You ran out of disk space on the HDFS file system
    • You have the wrong remote system configured.

    这篇关于在Hadoop中将文件从本地文件系统复制到HDFS时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆