[HADOOP] 하둡 - LeaseExpiredException
HADOOP하둡 - LeaseExpiredException
여러 개의 압축 파일이 각 압축 파일은 크기 5-10킬로바이트 8 개 XML 파일이 포함되어 있습니다. 나는 XML 파일의 테스트 목적 그렇지 않으면 라이브 데이터에 대한이 데이터가 1000했다. 난 압축 파일의 압축을 해제하는 유일한 프로그램지도를 작성
for(FileStatus status : status_list){
this.unzip(status.getPath().toString() , DestPath, fs);
}
이 방법은 파일을 생성하고 비 압축 데이터를 읽
FSDataOutputStream out = fs.create(new Path(filePath));
byte[] bytesIn = new byte[BUFFER_SIZE];
int read = 0;
while ((read = zipIn.read(bytesIn)) != -1) {
out.write(bytesIn, 0, read);
}
out.flush();
out.close();
매퍼는 다른 이름의 각각 여러 개의 파일을 작성했을 때, 하둡은 LeaseExpiredException를 반환합니다.
15/09/26 19:53:46 INFO mapreduce.Job: Task Id : attempt_1443265405944_0005_m_000000_0, Status : FAILED
Error: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): No lease on /test_poc/x/injection_00001 (163rd copy).xml (inode 400006): File does not exist. [Lease. Holder: DFSClient_attempt_1443265405944_0005_m_000000_0_-657768289_1, pendingcreates: 1]
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:3431)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.analyzeFileState(FSNamesystem.java:3236)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3074)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3034)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:723)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
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:1657)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)
at org.apache.hadoop.ipc.Client.call(Client.java:1476)
at org.apache.hadoop.ipc.Client.call(Client.java:1407)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
at com.sun.proxy.$Proxy12.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:418)
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:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy13.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1430)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1226)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:449)
나는 루프를 사용하지 않고 여러 개의 압축 파일을 처리하는 방법을 모르겠어요. 나는지도 MR2의 API를 사용하여 사이비 분산 모드에서 하둡 2.7.1를 사용하여 프로그램을 감소 썼다. 모든 포인터?
해결법
-
==============================
1.당신이 바이트를 읽는 대신 getNextEntry를 호출 반복적으로하지, zipIn는 java.util.zip.ZipInputStream 클래스라고한다 가정하면?
당신이 바이트를 읽는 대신 getNextEntry를 호출 반복적으로하지, zipIn는 java.util.zip.ZipInputStream 클래스라고한다 가정하면?
-
==============================
2.난 내 코드에서 일부 변경을 수행 한 후이 문제를 해결. 코드의 첫 번째 부분에서, 나는 내가 spilts 액세스해야하는 반면 모든 zip 파일의 압축을 풀려고 노력했다. 내가 구현 동안 잊고 기본적인 하둡.
난 내 코드에서 일부 변경을 수행 한 후이 문제를 해결. 코드의 첫 번째 부분에서, 나는 내가 spilts 액세스해야하는 반면 모든 zip 파일의 압축을 풀려고 노력했다. 내가 구현 동안 잊고 기본적인 하둡.
from https://stackoverflow.com/questions/32799677/hadoop-leaseexpiredexception by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 맵리 듀스 작업 분할 된 파일 (0) | 2019.09.28 |
---|---|
[HADOOP] JDBC는) (isValid 연결이 잘못된 작업에 실패 하이브 (0) | 2019.09.28 |
[HADOOP] 하둡 멀티 노드 클러스터에 start-dfs.sh을 시작할 수 없습니다 (0) | 2019.09.28 |
[HADOOP] 하둡 HDFS 오류로 로컬 데이터를 복사 (0) | 2019.09.28 |
[HADOOP] Nutch SOLR의 dataimport 핸들러? (0) | 2019.09.28 |