2014-01-22 3 views
2

distcp 오류 (버전 - 하둡 2.0.0-cdh4.3.0)하둡 내가 사용할 수 하둡 클러스터이 Kerberos를 사이에 하둡 Distcp에 노력하고

나는 명령 "하둡 distcp의 HDFS 사용하는 경우 : 클러스터 1 : 8020/사용자 /test.txt hdfs : // cluster2 : 8020/user "대상 클러스터에서 작동합니다. 클러스터 1 : 50070/사용자 /는 test.txt HDFS : // cluster2를 : 나는 "하둡 distcp의 HFTP를 사용하려고하면

Copy failed: java.io.IOException: Failed on local exception: java.io.IOException: Response is null.; Host Details : local host is: "cluster1/10.96.82.149"; destination host is: "cluster2":8020; 
     at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:763) 
     at org.apache.hadoop.ipc.Client.call(Client.java:1229) 
     at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202) 
     at $Proxy9.getDelegationToken(Unknown Source) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83) 
     at $Proxy9.getDelegationToken(Unknown Source) 
     at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getDelegationToken(ClientNamenodeProtocolTranslatorPB.java:783) 
     at org.apache.hadoop.hdfs.DFSClient.getDelegationToken(DFSClient.java:783) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.getDelegationToken(DistributedFileSystem.java:868) 
     at org.apache.hadoop.fs.FileSystem.collectDelegationTokens(FileSystem.java:509) 
     at org.apache.hadoop.fs.FileSystem.addDelegationTokens(FileSystem.java:487) 
     at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:130) 
     at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:111) 
     at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:85) 
     at org.apache.hadoop.tools.DistCp.setup(DistCp.java:1046) 
     at org.apache.hadoop.tools.DistCp.copy(DistCp.java:666) 
     at org.apache.hadoop.tools.DistCp.run(DistCp.java:881) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
     at org.apache.hadoop.tools.DistCp.main(DistCp.java:908) 
Caused by: java.io.IOException: Response is null. 
     at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:941) 
     at org.apache.hadoop.ipc.Client$Connection.run(Client.java:836) 

- 나는 소스 클러스터의 명령을 간부 인 때, 나는 아래의 오류를 얻고있다 8020/user "을 입력하면 아래 오류가 표시됩니다. -

org.apache.hadoop.ipc.RemoteException(java.io.IOException): Security enabled but user not authenticated by filter 
     at org.apache.hadoop.ipc.RemoteException.valueOf(RemoteException.java:97) 
     at org.apache.hadoop.hdfs.HftpFileSystem$LsParser.startElement(HftpFileSystem.java:425) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179) 
     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377) 
     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3104) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
     at org.apache.hadoop.hdfs.HftpFileSystem$LsParser.fetchList(HftpFileSystem.java:464) 
     at org.apache.hadoop.hdfs.HftpFileSystem$LsParser.getFileStatus(HftpFileSystem.java:475) 
     at org.apache.hadoop.hdfs.HftpFileSystem.getFileStatus(HftpFileSystem.java:504) 
     at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1378) 
     at org.apache.hadoop.tools.DistCp.checkSrcPath(DistCp.java:636) 
     at org.apache.hadoop.tools.DistCp.copy(DistCp.java:656) 
     at org.apache.hadoop.tools.DistCp.run(DistCp.java:881) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
     at org.apache.hadoop.tools.DistCp.main(DistCp.java:908) 

이 문제를 다시 해결하는 데 도움을주십시오. 원본 클러스터에서이 작업을 실행하고 싶습니다.

답변

0

고 가용성 이름 노드를 사용하고 있습니까?

높은 가용성의 distcp를 사용할 때 문제가 발생했습니다. 과거를 알기 위해 클러스터의 논리적 이름 대신 활성 namenode의 호스트 이름을 지정했습니다.