본문 바로가기

프로젝트/Pinpoint, Scouter 구축(APM)

Pinpoint - Hbase 웹 UI 이슈 (Hbase random port issue)

목차

    Hbase 구조 및 저장 데이터, 웹 UI 이슈

    Pinpoint에서는 기본적으로 Agent가 데이터를 저장하기 위한 Hbase sh 스크립트를 제공한다.

     

     

    test를 제외한 다음 table들을 가지고 있다.

     

     

     

    일단 이를 Web UI로 보기 위해 포트를 개방한 뒤 localhost를 확인해보았다.

     

    일단 hbase 설치 폴더 하위의 conf 설정을 해주어야 한다. 아래 블로그를 참고하였다.

    https://sparkbyexamples.com/hbase/setup-run-hbase-standalone-mode/

    https://songsunbi.tistory.com/3

     

    hbase-site.xml 설정
    
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
    
        <property>
            <name>hbase.cluster.distributed</name>
            <value>false</value>
        </property>
    
          <property>
    	<name>hbase.rootdir</name>
    	<value>file:///home/hbase-1.4.6/data</value>
          </property>
    
        <property>
            <name>hbase.master.info.port</name>
            <value>16010</value>
        </property>
          <property>
    	<name>hbase.zookeeper.property.dataDir</name>
    	<value>/home/zookeeper</value>
          </property>
    
    </configuration>

     

    포트 정보는 아래 블로그를 참고하였다.

    https://blog.naver.com/hero1014/20195600454

     

     

    분명 기본 포트는 16010(혹은 60010)으로 되어있다고 한다. 근데 gpt를 빌려 master log를 까보니.. "2024-01-17 20:50:50,950 INFO  [RS:0;localhost:34748] hfile.CacheConfig: Allocating LruBlockCache size=769.10 MB, blockSize=64 KB" 라고 나와있었다.

     

    GPT 해석, 웹 UI 포트: 마스터 웹 UI가 포트 37489로, 리전 서버 웹 UI가 포트 46793으로 바인딩되어 있습니다. 이는 기본적으로 설정된 16010 포트와 다릅니다.

    HBase 웹 UI에 접근하려면 이 포트를 사용해야 합니다. 예를 들어, 마스터 웹 UI에 접근하려면 http://localhost:37489 주소를 사용해야 한다.

     

    실제로 netstat -nltp로 확인해본 결과 이 값이 일치했다.

     

    37489에 hbase web이 연동되어 있는 것 같다.

     

    그래서 포트를 열어주었으나, 문제는 이게 계속 열 때마다 랜덤 포트로 열린다(16010이 아니라..). 

     

    랜덤 포트 문제 해결?

    https://stackoverflow.com/questions/59388307/not-able-to-access-hbase-web-ui

     

    Not able to access HBase web UI

    I am following the quick start doc of HBase. However, I cannot access HBase web UI. I tried with these addresses: http://127.0.0.1:16010/ http://localhost:16010/ http://localhost:60010/ I tried

    stackoverflow.com

     

    나의 경우처럼 StandAlone으로 동작할 경우 랜덤 포트로 열리는 경우가 있다고 한다.

    36330, 혹은 44050 포트

     

    포트 37489가 랜덤으로 열린 것에 대해 살펴보면, HBase와 같은 분산 시스템에서는 다양한 컴포넌트가 서로 통신하기 위해 동적으로 포트를 할당할 때가 많다고 한다.

    특히, 로컬에서 실행할 때나 개발/테스트 환경에서는 이러한 동적 포트 할당이 더 흔하게 발생한다. 이 부분의 일부인 것 같다.

     

    그냥 sh 파일을 재부팅할 때마다 port가 바뀌는 것을 확인했다. 이에 맞춰 시시각각 포워딩을 바꿔줘야 할 것 같다.

    다행인 것은 log폴더에서 grep * 'Jetty'를 통해 편하게 볼 수 있다는 것.

    16010으로 고정했는데 왜 fix가 되지 않는지는 추후 확인해야 할 것 같다.

     

    랜덤 포트 고정이 안 됐지만 임시로라도..

     

     

    랜덤 포트 문제 원인 : 설정을 true로.. (로컬 모드가 아니라 분산 모드로 실행해야 함.)

     

    hbase.cluster.distributed 속성이 false로 설정되면 HBase가 분산 모드가 아니라 로컬 모드로 실행된다.

    로컬 모드에서는 HBase 마스터가 Web UI를 위해 랜덤 포트를 할당하게 된다. 이것이 Web UI 포트가 매번 랜덤 포트로 변경되는 이유일 것이다.

     

    hbase.cluster.distributed 속성을 true로 변경하여 HBase를 분산 모드로 설정하였다. 분산 모드에서는 Web UI 포트가 hbase.master.info.port에 설정된 값인 16010으로 고정된다.

    '프로젝트 > Pinpoint, Scouter 구축(APM)' 카테고리의 다른 글

    Pinpoint - Application Inspector 기능 적용 (Flink 연동)  (0) 2024.01.19
    pinpoint - dapper, 분산 추적에 대해  (0) 2024.01.18
    Pinpoint 구축 중간 정리  (0) 2024.01.17
    Pinpoint2  (0) 2024.01.17
    Pinpoint  (0) 2024.01.16