centos7, hadoop 3.3.5 버전 기준입니다.
하둡 설치 완료 테스트 중 네임노드 fail over 테스트 진행 중에 나타난 에러입니다.
namenode 2대가 ha구성되어있고, 최초 기동 시, 한 서버는 active, 다른 한 서버는 standby 상태로 올아왔고,
active인 서버를 임의적으로 다운 후 standby 네임노드가 active로 승격되는 것을 기다렸으나, 아래 에러와 함께 계속해서 standby 모드로 실행되고 있었습니다. 아래는 zkfc의 에러 로그입니다.
2024-07-10 09:48:58,817 WARN org.apache.hadoop.ha.SshFenceByTcpPort: PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 8020 via ssh: bash: fuser: command not found
2024-07-10 09:48:58,818 INFO org.apache.hadoop.ha.SshFenceByTcpPort: rc: 127
2024-07-10 09:48:58,818 INFO org.apache.hadoop.ha.SshFenceByTcpPort.jsch: Disconnecting from [서버호스트] port [ssh포트]
2024-07-10 09:48:58,818 WARN org.apache.hadoop.ha.NodeFencer: Fencing method org.apache.hadoop.ha.SshFenceByTcpPort(flamingo:22002) was unsuccessful.
2024-07-10 09:48:58,818 ERROR org.apache.hadoop.ha.NodeFencer: Unable to fence service by any configured method.
2024-07-10 09:48:58,818 WARN org.apache.hadoop.ha.ActiveStandbyElector: Exception handling the winning of election
java.lang.RuntimeException: Unable to fence NameNode at [서버호스트]/[서버아이피]:8020
at org.apache.hadoop.ha.ZKFailoverController.doFence(ZKFailoverController.java:560)
at org.apache.hadoop.ha.ZKFailoverController.fenceOldActive(ZKFailoverController.java:532)
at org.apache.hadoop.ha.ZKFailoverController.access$1100(ZKFailoverController.java:63)
at org.apache.hadoop.ha.ZKFailoverController$ElectorCallbacks.fenceOldActive(ZKFailoverController.java:968)
at org.apache.hadoop.ha.ActiveStandbyElector.fenceOldActive(ActiveStandbyElector.java:1022)
at org.apache.hadoop.ha.ActiveStandbyElector.becomeActive(ActiveStandbyElector.java:921)
at org.apache.hadoop.ha.ActiveStandbyElector.processResult(ActiveStandbyElector.java:499)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:684)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:563)
하둡 설정 시, 노드들간의 통신을 ssh/fence로 설정하였고,
기존 active 네임노드가 다운된 것을 인지한 후, standby 노드를 승격하려는 시도는 보였습니다.
에러를 살펴보니, fuser라는 명령어를 사용하는데, 해당 명령어를 찾을 수 없다는 경고 로그가 나왔고,
구글링 결과, psmisc 라는 패키지 내 존재하는 명령어였습니다.
이에 yum을 통해 해당 패키지를 설치하니 standby 네임노드가 active 네임노드로 승격하였습니다.
yum install -y psmisc
감사합니다.
'BigData > Hadoop' 카테고리의 다른 글
Deep Dive Hadoop (1) | 2024.10.22 |
---|---|
yarn vcore 초과 할당 시 설정 (0) | 2024.06.20 |
yarn) spark yarn job container 로그 설정 (0) | 2024.02.13 |
yarn-site.xml 튜닝 (0) | 2023.09.07 |
yarn capacitiy 스케줄러 설정 (0) | 2023.07.26 |