root layout

패스트캠퍼스

(2번째 게시물)Pinpoint 를 docker로 실행 시키고 localhost:8080에서 Quick app은 뜨는데 또 테이블 생성 에러갔습니다.

2025.03.27 16:00 수정

https://fastcampus.co.kr/community/100682

해당 게시물에서


pinpoint를 docker image를 pull 받고 실행하는데 강의처럼 quick app이 뜨지 않고 강의에서 실행하느 ui가 제대로 뜨지 않는 다는 상황을 설명했더니


댓글에 해답이


1. hbase web에 접속해서 테이블 생성되었는지 확인해봐라

-> http://localhost:16010 으로 접속했는데 접속이 안됩니다.


2. hbase shell에서 exists 'AgentInfo' 명령어로 AgentInfo 테이블이 있는지 확인해 봐라

->

hbase(main):001:0> exists 'AgentInfo' 
hbase(main):001:0> exists 'AgentInfo' ERROR: KeeperErrorCode = NoNode for /hbase/masterFor usage try 'help "exists"'Took 0.0857 seconds

이러한 에러가 발생합니다.

그래서 이전 답변에서 테이블이 없다면

hbase shell로 hbasehbase-create.hbase를 실행해주라고 하는데 이건 테이블을 생성하라는 말 같아서

테이블을 생성했는데 다음과 같습니다.

hbase(main):007:0> create 'AgentInfo', { NAME => 'Info', DATA_BLOCK_ENCODING => 'PREFIX' }ERROR: KeeperErrorCode = NoNode for /hbase/masterFor usage try 'help "create"'Took 0.0164 seconds


위 처럼 테이블 생성이 안돼서

결국 gpt 검색해 보니 다음과 같이 답변 했습니다.

  • AgentInfo 테이블이 없어서가 아님

  • HBase 자체가 정상 기동이 안 됨

  • pinpoint-hbase 내에서 HBase master나 regionserver가 정상적으로 올라갔는지 확인해야 함

이라는 답변이 뜹니다.


그래서 컨테이너 안에서 jps 명령어를 입력하라고 해서 입력했습니다.

# jps
171 HRegionServer
1660 Jps
94 HMaster

이 상황은 hbase 프로세스는 기동 되있다고 합니다.


gpt가 status 입력하라고해서

그래서 다음 단계로

/opt/hbase/hbase-2.2.6/bin/hbase shell 에 접속해서 status 명령어를 입력했는데 결과가 다음과 같습니다.

hbase(main):001:0> status

ERROR: KeeperErrorCode = NoNode for /hbase/master

For usage try 'help "status"'

Took 0.1323 seconds


gpt 답변으로는

원인

HBase는 내부적으로 Zookeeper를 꼭 필요로 하는데

현재 메시지

KeeperErrorCode = NoNode for /hbase/master

의미는

/hbase/master라는 znode를 Zookeeper에서 못 찾는다는 뜻이야.

  1. Zookeeper가 안 떠있거나

  2. Zookeeper에 /hbase 노드가 생성되지 않았거나

  3. HMaster가 Zookeeper에 등록을 못했거나

이 셋 중 하나라고 합니다.


gpt 가 다음 단계로

zookeeper cli로 znode를 학인하라고 합니다. 그래서 다음과 같이 진행했습니다.

# /opt/hbase/hbase-2.2.6/bin/hbase zkcli
~~~ 뭐라뭐라 zookeeper.ZooKeeper: 정보가 써있습니다.

// 아래로 접속 돼서 ls / 명령어를 입력하니까
[zk: zoo1:2181,zoo2:2181,zoo3:2181(CONNECTED) 0] ㅣls /
[zookeeper, pinpoint-cluster, hbase]

위처럼

[zookeeper, pinpoint-cluster, hbase] 가 뜹니다.


그 다음으로는


docker exec -it pinpoint-hbase sh 명령어로 접속해서 start-hbase.sh 코드로 HBase Master 를 재시작 하라고 해서

재시작 해봤습니다.

# /opt/hbase/hbase-2.2.6/bin/start-hbase.sh
master running as process 94. Stop it first.: regionserver running as process 171. Stop it first.

이렇게 하니까

localhost:8080 에서 quick app은 뜨긴하는데

quick app 선택할 수 있게만 뜨고

아래처럼 에러가 뜹니다.

스크린샷 2025-03-27 오후 3.46.00.png


Error Details

Failed to execute 'json' on 'Response': Unexpected end of JSON input


그래서 개발자 도구 확인하니까 다음 api에서 404 not found 에러가 발생하는군요

http://localhost:8080/api/getServerMapDataV2?from=1743057299000&to=1743057599000&calleeRange=1&callerRange=1&wasOnly=false&bidirectional=false&useStatisticsAgentState=true&serviceTypeName=TOMCAT&applicationName=quickapp


그 다음으로

docker exec -it pinpoint-collector sh 로 접속하고 (pinpoint-collector 로 접속)

log 디렉토리 찾아서 가장 최근 날짜 로그 tail -f 로 찍어 봤습니다

$ tail -f pinpoint-collector.log 명령어로 찍어보니까 다음과 같은 에러들이 있습니다 (굉장히 긴데 제가 에러라고 할만한 것들만 추렸습니다.)

03-27 06:53:33.033 [trics-publisher] WARN  i.m.r.o.OtlpMeterRegistry                : Failed to publish metrics to OTLP receiver (context: url=http://localhost:4318/v1/metrics, resource-attributes={service.name=application})

java.net.ConnectException: Connection refused


03-27 06:54:05.005 [tLoopGroup-1-14] WARN  o.a.h.h.c.AsyncNonMetaRegionLocator      : Failed to locate region in 'ApplicationMapStatisticsSelf_Ver2', row='\x04\x00\x08quickapp\x03\xF2\x7F\xFF\xFEj)\x9E\xF0\xBF', locateType=CURRENT

org.apache.hadoop.hbase.TableNotFoundException: ApplicationMapStatisticsSelf_Ver2


03-27 06:54:05.005 [cTemplate(0-11)] WARN  c.n.p.c.h.a.HbaseAsyncTemplate           : ApplicationMapStatisticsSelf_Ver2 INCREMENT failed

org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=1, exceptions:

2025-03-27T06:54:05.242Z, org.apache.hadoop.hbase.TableNotFoundException: ApplicationMapStatisticsSelf_Ver


Caused by: org.apache.hadoop.hbase.TableNotFoundException: ApplicationMapStatisticsSelf_Ver2

... 57 more



근데 또 테이블이 생성안됐다는 것 같은데..
결국엔 돌고 돌아 똑같은 문제인데
제가 제대로 과정을 겪은게 맞나요?
이 문제를 대체 이 상황에서 더 어떻게 해결하면 좋을까요?



답변 

연관 질문

커뮤니티 질문보기