메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


ps -ef | grep HIVESEVER2 로 프로세스ID를 찾은 다음에 아래의 1,2는 시간을 두고 여러 번 수행해서 전후를 비교해야 원인 파악하기가 수월하다.

(예, 프로세스ID가 72787인 경우)


1. sudo -u hive /usr/java/jdk/bin/jstack -l 72787 >> jstack.out

2. sudo -u hive pstack 72787 >> pstack.out

3. sudo -u hive /usr/java/jdk/bin/jmap -dump:live,format=b,file=jmap.hprof 72787

Dumping heap to /tmp/hsperfdata_hive/jmap.hprof ...

Heap dump file created



1. jstack

  1) 자바 Thread dump확인시 사용.

  2) jstack [PID] : 프로세스 번호를 넣어 실행한다. ( -l 옵션을 사용하면 각 Thread의 Lock정보까지 획득.)

  3) thread dump내용중 prio(thread priority)는 1부터 10까지 있으며, thread의 우선순위를 가진다.


2. pstack

  1) pstack은 리눅스 OS레벨의 Thread덤프를 제공한다.


3. Thread status

  1) NEW : Thread를 생성하였지만 아직 시작하지 않은 상태.

  2) RUNNABLE : 실행중인 상태

  3) BLOCKED : 다른 Thread가 소유하고 있는 Monitor를 소유하기 위하여 대기 중인 상태.

                (Monitor? 각 자바객체가 소유하고 있는 공간으로 한번에 하나의 Thread만이 접근할 수 있다.)

  4) WAITING : Object.wait(), Thread.join()등의 메서드에 의해 대기중인 상태.

  5) TIMED_WAITING : Object.wait(), Thread.join(), Thread.sleep()등의 메소드에 의해 대기중인상태

                      (WAITING과 차이점은 최대 대기시간이 지정됨.)

  6) TERMINATED : 실행을 종료하였거나 Exception이 발생한 상태.

위로