::: 데이터 분석 :::

Ambari Metrics의 METRICS 탭에 그래프가 표시 안되는 경우

곰탱이푸우 2023. 5. 8. 08:20
Ambari Metrics Collector는 Ambari 관리 클러스터에서 Hadoop 구성 요소와 시스템의 Metric (측정지표)을 수집하여 제공한다.
AMS (Ambari Metrics System)이라고도 하며, 수집한 Metric 정보를 시각적으로 확인할 수 있는 장점이 있다.
 
다음과 같이 구성된다.
구분
내용
Metrics Monitor
클러스터의 Host에서 시스템 수준의 Metric을 수집하고 Metrics Collector에 전달
Hadoop Sink
Hadoop 구성 요소에 연결되어 Metric을 Metrics Collector에 전달
Metrics Collector
클러스터의 특정 Host에 설치되어  Metrics Monitor, Hadoop Sink의 데이터 수집
Grafana
클러스터의 특정 Host에 설치되어 수집 된 Metric에 대한 Dashboard 제공 (시각화)
 
전체적인 구성은 다음과 같다.

 

 
자세한 사항은 아래 문서를 참고한다.
Ambari 설치 방법은 아래 포스팅을 확인한다.
Ambari 설치를 위한 CentOS 7 환경 설정은 아래 포스팅을 참고한다.
 

증상 확인

Ambari 설치 이후 Ambari Metrics가 정상 동작하더라도 METRICS 탭을 클릭하면 아래와 같이 그래프가 표시되지 않는다.
 

원인 확인

HDP가 배포하던 버전부터 존재하던 mpack 설정 부분의 버그(오타)가 bigtop의 배포 버전까지 남아있어 발생한다.
 
아래 문서에 이미 알려진 이슈로 언급 된 사항이다.
해당 내용은 Apache Bigtop 배포 버전에도 그대로 남아있는 것으로 확인된다.
 

해결 방법

해당 부분을 수정하고 Ambari Metrics를 초기화하고 재실행하면 해결된다.
 

Ambari mpack 파일 수정

먼저 Ambari의 mpack 파일을 수정한다.

 

AMBARI_METRICS/metainfo.xml 파일을 아래와 같이 수정한다.
$ sudo vi /var/lib/ambari-server/resources/mpacks/bgtp-ambari-mpack-1.0.0.0-SNAPSHOT \
          /stacks/BGTP/1.0/services/AMBARI_METRICS/metainfo.xml
# 35번 라인의 AMS-HBASE를 ams-hbase로 수정
# 기존: <timelineAppid>AMS-HBASE/timelineAppid>
<timelineAppid>ams-hbase</timelineAppid>

# 입력 완료 후 :wq로 저장하고 종료
 
 
KAFKA/metainfo.xml 파일을 아래와 같이 수정한다.
$ sudo vi /var/lib/ambari-server/resources/mpacks/bgtp-ambari-mpack-1.0.0.0-SNAPSHOT \
          /stacks/BGTP/1.0/services/KAFKA/metainfo.xml
<metainfo>
  <schemaVersion>2.0</schemaVersion>
  <services>
    <service>
      <name>KAFKA</name>
# 아래에 다음 내용 추가
      <timelineAppid>kafka_broker</timelineAppid>

# 입력 완료 후 :wq로 저장하고 종료
 
NIFI 설정 변경 제외

참고한 사이트는 HDP 배포 버전 기준이기 때문에 NIFI 설정도 포함되어 있다.
그러나 Bigtop 배포 버전에는 NIFI가 없어 생략하였다.

 

수정이 완료되면 다음 명령어로 Ambari 서버를 재시작한다.

$ sudo ambari-server restart
 

Ambari Metrics 초기화 

기존의 Ambari Metrics Collector가 생성한 파일들을 제거하고 재시작해야 한다.
 

Ambari Metrics 서비스 중지

Ambari - Ambari Metrics로 이동하여 ACTIONS의 Stop 버튼을 클릭한다.
 
서비스 중단이 완료되면 ACTIONS의 Turn On Maintaenance Mode 버튼을 클릭한다.

 

 

Ambari Metrics 설정 값 확인

Ambari - Ambari Metrics의 CONFIGS 탭에서 Advanced ams-hbase-site 클릭하고 아래 값을 확인한다.
설정 값들은 시스템마다 다를 수 있다.
구분
내용
hbase.rootdir
hdfs://서버주소:8020/user/ams/hbase
hbase.tmp.dir
/var/lib/ambari-metrics-collector/hbase-tmp
ZooKeeper Znode Parent
/ams-hbase-unsecure
hbase.rootdir의 경우 distributed 모드인 경우 HDFS 경로, embedded 모드인 경우 로컬 경로로 나타난다.
 

Ambari Metrics 관련 파일 삭제

hbase.tmp.dir과 hbase.rootdir 경로의 파일을 삭제한다.
해당 파일들은 서비스를 재시작하면 다시 생성된다.
 
먼저 hbase.tmp.dir 경로의 파일을 제거한다.
$ cd /var/lib/ambari-metrics-collector/hbase-tmp/*
$ sudo rm -rf *
 
그리고 hbase.rootdir 경로의 파일을 제거한다.
HDFS에 존재하는 파일이므로 hadoop 명령을 사용한다.
$ sudo su ams
$ hadoop fs -rm -r -f /user/ams/hbase
$ hadoop fs -rm -r -f /user/ams/.Trash/Current/user/*
 

Zookeeper에서 관련 노드 제거

마지막으로 Zookeeper에 등록 된 Ambari Metrics 관련 노드들을 제거한다.
서비스를 재시작하면 재등록된다.
 
다음과 같이 진행한다.
$ sudo su zookeeper
$ sudo /usr/lib/zookeeper/bin/zkCli.sh

# ls 명령어로 ams-hbase-unsecure가 있는지 확인
[zk: localhost:2181(CONNECTED) 0] ls /
[admin, ambari-metrics-cluster, ams-hbase-unsecure, brokers, cluster, 
 config, consumers, controller, controller_epoch, feature, hiveserver2, 
 isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]

# 존재하는 경우 해당 노드 제거 (앞에 /가 붙어야한다)
[zk: localhost:2181(CONNECTED) 1] deleteall /ams-hbase-unsecure
[zk: localhost:2181(CONNECTED) 2] deleteall /ambari-metrics-cluster
[zk: localhost:2181(CONNECTED) 3] quit

$ exit
 

서비스 재시작

앞서 진행한 서비스 중지의 역순으로 서비스를 재시작한다.
 
Ambari - Ambari Metrics로 이동하여 ACTIONS의 Turn Off Maintenance Mode를 클릭한다.

 

ACTIONS의 Start 버튼을 클릭한다.
 
 

결과 확인

서비스 시작이 완료되어 정상 실행되고 일정 시간이 지나면 아래와 같이 Metrics에 그래프가 표시된다.
 
위의 내용은 아래 사이트를 참고하였다.