2013-01-05 3 views
1

모두. 나는 97 %로 하이브 쿼리를 실행하고 예외는 org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException : sth에리스가 없음을 보여줍니다.하이브의 LeaseExpiredException

누구든지이 오류가 발생한 이유를 친절하게 설명 할 수 있습니까? 그리고 이것은 단일 사용자 하이브 (Hive) 클러스터 환경입니다.

미리 감사드립니다.

2013-01-02 22:16:17,833 ERROR org.apache.hadoop.hdfs.DFSClient: Exception closing file /tmp/hive-hadoop/hive_2013-01-01_21-21-32_067_6367259756570557828/_task_tmp.-ext-10002/_tmp.000004_1 : org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /tmp/hive-hadoop/hive_2013-01-01_21-21-32_067_6367259756570557828/_task_tmp.-ext-10002/_tmp.000004_1 File does not exist. Holder DFSClient_attempt_201301012114_0002_m_000004_1 does not have any open files. 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1631) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1622) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFileInternal(FSNamesystem.java:1677) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFile(FSNamesystem.java:1665) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.complete(NameNode.java:718) 
     at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 
     at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382) 

org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /tmp/hive-hadoop/hive_2013-01-01_21-21-32_067_6367259756570557828/_task_tmp.-ext-10002/_tmp.000004_1 File does not exist. Holder DFSClient_attempt_201301012114_0002_m_000004_1 does not have any open files. 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1631) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1622) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFileInternal(FSNamesystem.java:1677) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFile(FSNamesystem.java:1665) 
     at org.apache.hadoop.hdfs.server.namenode.NameNode.complete(NameNode.java:718) 
     at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388) 
     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 
     at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382) 

     at org.apache.hadoop.ipc.Client.call(Client.java:1070) 
     at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225) 
     at $Proxy2.complete(Unknown Source) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59) 
     at $Proxy2.complete(Unknown Source) 
     at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.closeInternal(DFSClient.java:3897) 
     at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.close(DFSClient.java:3812) 
     at org.apache.hadoop.hdfs.DFSClient$LeaseChecker.close(DFSClient.java:1345) 
     at org.apache.hadoop.hdfs.DFSClient.close(DFSClient.java:275) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.close(DistributedFileSystem.java:328) 
     at org.apache.hadoop.fs.FileSystem$Cache.closeAll(FileSystem.java:1446) 
     at org.apache.hadoop.fs.FileSystem.closeAll(FileSystem.java:277) 
     at org.apache.hadoop.fs.FileSystem$ClientFinalizer.run(FileSystem.java:260) 

답변

1

하이브 쿼리가 병렬 MR 작업을 생성합니까? 동일한 문제가 발생하여 발견했습니다 : LeaseExpiredException: No lease error on HDFS :

작업이 끝나면/data/work/folder가 삭제됩니다. 병렬로 실행되는 작업이 거의없는 경우 삭제 작업은 다른 작업의 파일도 삭제합니다. 실제로/data/work /를 삭제해야합니다. 즉

이 예외가 작업이 더 이상

+0

고맙습니다. 그리고 당신의 제안은 옳습니다. 내 클러스터가 가상 컴퓨터와 함께 클라우드에 배포되고 일부 VM이 내 회사와 함께 배치되는 이유를 발견했습니다. 그리고 그의 VM은 거의 모든 메모리와 네트워크를 차지했습니다. 따라서 데이터 노드는 클라이언트와 핑퐁을 할 수 없습니다. 데이터 노드를 다른 무료 시스템으로 마이그레이션했는데 제대로 작동합니다. – KaiZhao

2

SET의 hive.exec.max.dynamic.partitions = 100000 존재하지 않는 파일에 액세스하려고 할 때 발생합니다; SET hive.exec.max.dynamic.partitions.pernode = 100000;