본문 바로가기

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

Pinpoint - flink 연동 2

목차

    https://csg1353.tistory.com/145

     

    Pinpoint - Application Inspector 기능 적용 (Flink 연동)

    https://pinpoint-apm.github.io/pinpoint/applicationinspector.html#application-inspector-1 How to use Application Inspector | Leading Open-Source APM English | 한글 Application Inspector 1. Introduction Application inspector provides an aggregate view of

    csg1353.tistory.com

     

    이전 게시글에서 이어서 리부트를 실행하였음.

     

    환경 변수 밀어버린 이후 에러 발생 (테이블 확인 불가능 -> 테이블 날아감)

    스크립트 확인 결과 이전 것들이 날아갔다.

     

    조치 : 새로 스크립트 실행 후 테이블 생성

     

     

     

     

    Collector Table 인식 에러 : Failed to get region location 
    org.apache.hadoop.hbase.TableNotFoundException: AgentStatV2

     

    Pinpoint Collector 실행 시 테이블을 읽어오지 못함. 분명 테이블이 존재하는데

     

    Hbase 재설치 : https://peterica.tistory.com/32

     

    [APM] PinPoint 설치 - 1편 - JAVA, hbase 설치

    나의 첫 APM은 Splunk 전자결제팀 소속으로 근무할 때에 splunk를 사용하였다. 특정 거래의 transaction_id를 검색하며, client, Auth, Engin에서 수행된 로그를 한 눈에 볼 수 있었다. 데시보드에는 현재의 트

    peterica.tistory.com

     

     

     

     

     

     

     

     

     

     

    Flink

    Web UI 설정

    conf - yaml에서 rest 부분을 잘 설정해줄 것. 자세한 내용은 버전에 따른 자체 문서 확인

     

    1. 주소 설정을 0.0.0.0 으로 broadcast해줄것 (localhost도 자체적으로 볼수 있다면 상관없음)

     

    2. Please specify JAVA_HOME. Either in Flink config ./conf/flink-conf.yaml or as system-wide JAVA_HOME. <<- yaml 설정 통해 JAVA_HOME 적용  

     

    Flink 클러스터 접속

    1. Flink가 설치된 서버나 클러스터에 접속

    2. Flink 서비스가 실행 중인지 확인.

    ./bin/start-cluster.sh 명령을 사용하여 Flink 클러스터를 시작


    3. job 제출:

    ./flink 명령어를 실행하여 job을 제출. 이 때, Spring 프로필을 job parameter로 지정해야 한다.

    클래스명 : JAR 파일은 하나 이상의 클래스를 포함할 수 있으며, 이 중 하나의 클래스가 메인 클래스로 지정되어야 함.

    이 메인 클래스는 Flink 잡(job)의 진입점(entry point)으로 작용한다. Flink job을 실행하기 위해서는 이 메인 클래스의 이름을 명령어에 포함시켜야 한다. 

     

    .. 라고 하지만 실제 명령어에 구체적으로 넣지 않아도 알아서 찾아서 실행하는 것 같다.


    만약 메인 클래스의 이름을 모르는 경우, JAR 파일을 분석하여 찾아야 한다.

    일반적으로 JAR 파일을 생성할 때 메인 클래스는 MANIFEST.MF 파일에 지정된다. JAR 파일 내의 META-INF/MANIFEST.MF 파일을 열어 Main-Class 속성을 확인하면 메인 클래스의 이름을 알 수 있다.

     

    이런 식으로.. MANIFEST.MF 파일을 열어보자.



    나의 경우는 이 명령어이다. (bin 폴더 내에 저장, bin에서 실행)

    클래스명 명시하여 실행
    sudo ./flink run -c com.navercorp.pinpoint.flink.StatStreamingVer2Job -Dspring.profiles.active=release pinpoint-flink-job-2.3.3.jar
    
    혹은 생략해도 실행 자체는 된다.
    sudo ./flink run pinpoint-flink-job-2.3.3.jar -Dspring.profiles.active=release

     

     

    에러  1. LocalStreamEnvironment 문제 : jar 파일의 server 설정

    https://github.com/pinpoint-apm/pinpoint/issues/10628

     

    Pinpoint - Flink 설정 문제(LocalStreamEnvironment) · Issue #10628 · pinpoint-apm/pinpoint

    Prerequisites Please check the FAQ, and search existing issues for similar questions before creating a new issue.YOU MAY DELETE THIS PREREQUISITES SECTION. [v] I have checked the FAQ, and issues an...

    github.com

     

    Local 폴더 내의 properties도 server로 설정하니 변경되었음.

     

    local 폴더 내부의 flink.properties의 설정 역시 local이 아닌 server로 수정해주어야 한다.

     

    에러  2. JobExecutionException 문제 : Flink 버전 문제였다.

    1.6.x 버전이 호환되는데 1.16.x를 설치하였음. 

    다시 설치하고 세팅하니 해결. 버전 관리를 확실하게 하자.

     

     

     

    추가 세팅 + Collector And Web

     

    https://pinpoint-apm.gitbook.io/pinpoint/documents/application-inspector#application-inspector-1

     

    How to use Application Inspector - Pinpoint

    Application inspector provides an aggregate view of all the agent's resource data (cpu, memory, tps, datasource connection count, etc) registered under the same application name. A separate view is provided for the application inspector with stat charts si

    pinpoint-apm.gitbook.io

     

    ref Docs

     

    이전과 마찬가지로 .jar의 properties의 내부 값들을 변경해주자.

     

     

     

     

     

    Hbase Web UI

    기본 내장 설정 사용.
    
    #HBase Root Directory: HBase 데이터를 저장할 파일 시스템의 경로를 설정
    <property>
        <name>hbase.rootdir</name>
        <value>file:///opt/hbase-1.4.6/data/hbase_data</value>
    </property>
    
    #ZooKeeper 데이터 디렉토리: ZooKeeper가 사용할 데이터 디렉토리를 지정
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/hbase-1.4.6/data/zookeeper_data</value>
    </property>
    
    
    #HBase Master Web UI 포트
    <property>
        <name>hbase.master.info.port</name>
        <value>16010</value>
    </property>
    
    정도만 hbase-site.xml에 적용하였다.