728x90
Test Cluster 에서 HA를 구성 했는데 뜬금없이 NameNode가 죽고 StandbyNamenode가 Namenode로 전환되는 일이 있었다.
일단 원인은
java.lang.Thread.run(Thread.java:745) Number of suppressed write-lock reports: 0 Longest write-lock held interval: 22184
Write-lock 이 걸린 것이다. 그로 인해
org.apache.hadoop.ipc.RemoteException(java.io.IOException): IPC's epoch 10 is less than the last promised epoch 11 at org.apache.hadoop.hdfs.qjournal.server.Journal.checkRequest(Journal.java:428) at org.apache.hadoop.hdfs.qjournal.server.Journal.checkWriteRequest(Journal.java:456) at org.apache.hadoop.hdfs.qjournal.server.Journal.journal(Journal.java:351) at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.journal(JournalNodeRpcServer.java:152) at org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolServerSideTranslatorPB.journal(QJournalProtocolServerSideTranslatorPB.java:158) at org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos$QJournalProtocolService$2.callBlockingMethod(QJournalProtocolProtos.java:25421) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640)
대략 위와 같은 에러가 발생했다.
HA 구성시 Journal Node 가 추가 되는데 이건 namenode가 hdfs에 파일 기록시 동기화를 맞추기 위한 일종의 기록 보관실이다.
그래서 해당 namenode가 죽었을 때 standbynamenode가 전화 되면서 정확히 동기화 하여 실행 되는 것이다.
그런데 위의 로그 내용을 보면 journal node에 기록 되어야 할 예약 번호가 있는데 10번이 11번 보다 늦었다고 나온다.
즉 write-lock이 발생하면서 10번 보다 11번이 먼저 기록 되었고
당연히 순서가 바뀌면서 에러가 발생
결국은 OOM까지 발생한 것이다. 그러면서 재빨리 namenode를 전환 한 것이다.
write-lock 문제는 정확히 알수가 없다는...
빈번히 발생하면 관련 문제를 확인해 봐야 겠다.
'프로그래밍 > hadoop' 카테고리의 다른 글
zeppelin-0.8.1 설치 삽질(with elasticsearch) (0) | 2019.07.15 |
---|---|
HDFS 데이터를 REMOTE HDFS로 COPY 할 때 (0) | 2018.11.15 |
Fix Under-replicated blocks in HDFS manually (0) | 2018.11.15 |
Old Version HDP 삭제 (0) | 2018.11.15 |
Ambari를 통한 업데이트 시 발생한 문제 (0) | 2018.11.15 |