하둡 척와(Hadoop Chukwa) 초보 가이드 – 설치하기

이 글은 크몽 재능인, socurites님이 원고를 기고하셨습니다.

 척와 초보자를 위한 가이드로, 총 3개로 구성되어 있습니다.

  1. 기본
  2. 설치하기
  3. 에이전트 영향도 분석

설치전 준비사항

척와를 설치하려면 아래와 같은 항목이 먼저 준비되어야 한다.

  • 리눅스 플랫폼을 사용한다.
  • 1.6 이상 버전의 자바가 설치되어 있어야 한다.
  • Hadoop 0.20.2 버전을 다운로드 받아야 한다.
  • 여기에서는 HICC를 설치하지 않을 것이므로 MySQL은 필요 없다.

척와 구성 요소

척와는 아래와 같은 요소로 구성된다. 따라서 척와를 설치하려면 하둡 클러스터, 척와 에이전트, 척와 컬렉터를 설치해야 한다.

chukwa_system_diagram

  • 데이터를 저장할 하둡 클러스터(척와 클러스터)
    여기에서는 하둡 파일 시스템을 의사 분산 모드로 설치했다고 가정한다. 자세한 내용은 의사 분산 모드로 하둡(Hadoop) 실행하기을 참고하라
  • 척와 에이전트
    로컬 머신에서 모니터링한 로그 데이터를 전송한다
  • 척오 컬렉터
    에이전트에서 수신한 데이터를 HDFS에 저장한다

예제 구성

여기에서는 아래와 같은 구성으로 척와를 구성하고자 한다.

chukwa_sample

두 대의 리눅스 머신 중에서 하나는 척와 에이전트를, 나머지 하나는 척와 컬렉터를 설치하고자 한다. 척와 컬렉터를 설치한 머신에는 하둡을 의사 분산 모드로 설치해서, 로그 데이터를 저장하는 역할까지 하도록 한다.

척와 설치 공통사항

아래의 사항은 에이전트와 컬렉트를 설치할 머신에서 공통적으로 설정해야 하는 작업이다.

척와 설치하기

척와를 척와 릴리즈 페이지에서 다운로드 받는다. 여기에서는 chukwa-0.4.0.tar.gz를 다운로드 받았다.

로컬 파일 시스템의 적당한 위치에 압축을 푼다. 이렇게 하둡이 설치된 디렉토리를 CHUKWA_HOME이라고 부르자.

$ tar xvf chukwa-0.4.0.tar.gz

척와 관련 명령어를 쉽게 실행하기 위해 척와 설치 디렉토리(CHUKWA_HOME)를 환경 변수에 설정하고, PATH를 설정한다(필수 사항은 아니다). 여기에서는 .bashrc 파일에 설정했다

#CHUKWA
export CHUKWA_HOME=척와가 설치된 경로
export PATH=$PATH:$CHUKWA_HOME/bin

척와 공통 정보 설정하기

척와 공통 정보를 conf/chukwa-env.sh에 설정한다 (에이전트와 컬렉터가 설치된 머신 모두에 설정해야 한다).

JAVA_HOME 환경변수를 설정한다. 시스템 환경변수(.bashrc)에 설정해도 상관 없지만, 여기에서는 conf/chukwa-env.sh에 설정한다.

export JAVA_HOME=/usr/lib/jvm/java-6-sun5

척와 콘솔 로그와 pid 로그를 저장할 디렉토리를 conf/chukwa-env.sh에 설정한다. 여기에서는 디폴트 값을 그대로 사용한다.

export CHUKWA_PID_DIR=/tmp/chukwa/pidDir
export CHUKWA_LOG_DIR=/tmp/chukwa/log

척와 콘솔 로그 파일에 이름을 붙일 때 사용할 CHUKWA_IDENT_STRING을 conf/chukwa-env.sh에서 설정한다. 여기에서는 디폴트 값을 그대로 사용한다.

export CHUKWA_IDENT_STRING=chukwa

척와 에이전트 설치하기

척와 에이전트를 설치 과정은 “1. 척와 에이전트 옵션 설정하기”, “2. 에이전트 등록하기”, “3. 컬렉터 등록하기”, “4. 어댑터 등록하기”, 총 4개의 작업으로 구성된다.

에이전트 옵션 설정하기

척와 에이전트는 conf/chukwa-agent-conf.xml에서 설정한다. 디폴트 그대로 사용해도 실행하는데 문제가 없으며, 필요에 따라 아래의 옵션을 설정한다.

  • chukwaAgent.tags
    척와 클러스터명으로, 모니터링하고 있는 노드에 대한 식별자다. 이 정보는 수집한 각 청크에 저장되므로, 해당 청크가 어느 머신에서 전송되었는지를 이 정보를 통해 구분할 수 있다. 여기에서는 디폴트 값 그대로 둔다.
  • chukwaAgent.checkpoint.dir
    컬렉터에 데이터를 전송하면서 장애가 발생했을 때, 마지막으로 전송한 청크의 오프셋 정보를 저장할 때 사용한다. 여기에서는 디폴트 값을 그대로 사용한다.

에이전트 등록하기

에이전트로 실행할 전체 에이전트 목록을 conf/agents에 설정한다. 여기에서는 에이전트가 로컬서버 한대이므로 localhost만 등록한다.

#agent
localhost

컬렉터 등록하기

데이터를 전송할 컬렉터를 conf/collectors에 등록한다. 척와는 이 파일에서 컬렉터를 임의로 골라서 해당 컬렉터로 데이터를 전송한다. 해당 컬렉터에 장애가 발생하면, 컬렉터 목록에서 다른 컬렉터를 선택하는 방식으로 로그 유실을 방지한다.

여기에서는 221번 서버가 컬렉터이므로, 이 컬렉터에 대한 정보를 등록한다. 실행할 전체 컬렉터 목록은 컬렉터가 설치된 머신의 conf/collectors에서 설정한다.

# collectors
http://33.33.211.221:8080

어댑터 등록하기

데이터를 수집할 어댑터를 conf/initial_adaptors에 등록한다. 이처럼 어댑터를 설정파일에 등록할 수도 있지만, 실행 중인 에이전트에 어댑터를 직접 추가할 수도 있다.

여기에서는 conf/initial_adaptors.template 파일을 참조해서 만든다. 템플릿 파일에 등록된 어댑터 중에서 Df, Top에 해당하는 어댑터 2개만 conf/initial_adpators에 등록한다.

add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Df 60 /bin/df -l 0
add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Top 60 /usr/bin/top -b -n 1 -c 0

척와 에이전트 관리하기

척와 에이전트는 아래의 명령어를 실행해서 데몬으로 실행할 수 있다.

$ bin/start-agents.sh

명령어를 실행하면 conf/agents에 나열단 각 머신에 ssh로 접속해서 에이전트를 실행한다. 이 경우 에이전트가 로컬호스트 하나 뿐이므로, 로컬호스트의 에이전트가 실행된다.

척와 에이전트를 중지하려면 아래의 명령어를 실행한다.

$ bin/stop-agents.sh

에이전트가 제대로 동작중인지는 에이전트 포트(디폴트로 9093을 사용한다)에 텔넷으로 접속해서 확인할 수 있다. 에이전트가 정상적으로 동작중이라면, 에이전트와 관련된 상태 메시지가 나온다.

척와 컬렉터 설치하기

하둡 설정하기

컬렉터에서 수집한 데이터를 저장해야 하므로, 하둡과 관련된 설정을 추가해야 한다. conf/chukwa-env.sh에 HADOOP_HOME과 HADOOP_CONF_DIR을 아래와 같이 설정한다.

export HADOOP_HOME="하둡이 설치된 위치"
export HADOOP_CONF_DIR="${HADOOP_HOME}/conf"

척와 옵션 설정하기

척와 컬렉터는 conf/chukwa-collector-conf.xml에서 옵션을 설정할 수 있다. 반드시 설정해야 하는 부분은 writer.hdfs.filesystem다. 여기에서는 의사 분산 모드로 설치한 하둡 파일 시스템을 설정한다.

<property>
    <name>writer.hdfs.filesystem</name>
    <value>hdfs://localhost:9000</value>
    <description>HDFS to dump to</description>
</property>

이 외에도 컬렉터에서는 아래와 같은 속성을 설정할 수 있다.

  • chukwaCollector.writerClass
    – 로그 레코드를 저장할 Writer 클래스
    – 디폴트: org.apache.hadoop.chukwa.datacollection.writer.PipelineStageWriter
  • chukwaCollector.pipeline
    – PipelineStageWriter에서 사용할 Writer 클래스. 콤마로 분리해서 설정한다.
    – 디폴트: org.apache.hadoop.chukwa.datacollection.writer.SocketTeeWriter, org.apache.hadoop.chukwa.datacollection.writer.SeqFileWriter
  • writer.hdfs.filesystem (필수)
    – 수집한 로그를 저장할 하둡 파일 시스템
  • chukwaCollector.outputDir
    – 수집한 로그(싱크 파일)를 저장할 하둡의 디렉토리
    – 디폴트: /chukwa/logs/
  • chukwaCollector.rotateInterval
    – 오픈한 파일을 close()하는 주기 (ms)
    – 디폴트: 300000
  • chukwaCollector.http.port
    – 컬렉터가 리스닝할 포트 번호
    – 디폴트: 8080

컬렉터 등록하기

실행할 컬렉터는 모두 conf/collectors에 등록한다. 여기에서는 221번 서버가 컬렉터이므로, 이 컬렉터에 대한 정보를 등록한다.

http://33.33.211.221:8080

척와 컬렉터 관리하기

척와 컬렉터는 아래의 명령어를 실행해서 데몬으로 실행할 수 있다.

$ bin/start-collectors.sh

그러면 conf/collectors에 나열된 각 머신에 ssh로 접속해서 컬렉터를 모두 실행한다.

척와 컬렉터를 중지하려면 아래의 명령어를 실행한다.

bin/stop-collectors.sh

컬렉터가 제대로 동작중인지 확인하려면 브라우저에서 http://collectorhost:collectorport/chukwa?ping=true 로 접속한다. 여기에서는 http://localhost:8080/chukwa?ping=true 로 접속해 보면 아래와 같이 컬렉터와 관련된 상태 정보를 확인할 수 있다.

Date:1322449269195
Now:1322449296866
numberHTTPConnection in time window:0
numberchunks in time window:0
lifetimechunks:0

마지막으로 데이터 처리 프로세스를 실행한다.

$ start-data-processors.sh

그러면 아카이빙, 디먹스, HICC용 데이터 프로세싱 작업이 실행되고 이를 통해 주기적으로 데이터를 처리하게 된다. 실제로 start-data-processors.sh를 열어서 보면 아래와 같이, archive, demux, dp를 차례대로 실행함을 알 수 있다.

# start data processors
"$bin"/chukwa-daemon.sh --config $CHUKWA_CONF_DIR start archive
"$bin"/chukwa-daemon.sh --config $CHUKWA_CONF_DIR start demux
"$bin"/chukwa-daemon.sh --config $CHUKWA_CONF_DIR start dp

실행과정 눈으로 확인하기

이렇게 설치가 끝났다면, 실제로 척와 관련 데몬을 실행해서 제대로 실행되는지 확인해 보자.

척와 실행하기

이렇게 설정을 다했다면 아래와 같은 구성으로 관련 데몬을 실행한다.

chukwa_sample_daemo

척와 에이전트 실행 확인하기

척와 에이전트가 설치된 머신에서 /tmp/chukwa/logs로 이동한다. 해당 디렉토리에는 agent.log가 아래와 같이 생성되어 있다.

HTTP post thread ChukwaHttpSender - collected 14 chunks for post_53
HTTP post thread ChukwaHttpSender - >>>>>> HTTP post_53 to http://33.33.211.211:8080/ length=18715
HTTP post thread ChukwaHttpSender - >>>>>> HTTP Got success back from http://33.33.211.211:8080/chukwa; response length 826
HTTP post thread ChukwaHttpSender - post_53 send 0 chunks, got back 14 acks

척와 컬렉터 실행 확인하기

척와 컬렉터가 설치된 머신에서 /tmp/chukwa/logs로 이동한다. 해당 디렉토리에는 collector.log가 생성되어 있으며, 컬렉터와 관련된 로그를 확인할 수 있다.

하둡 파일 시스템 확인하기

척와 컬렉터의 데이터 프로세스를 실행했다면, http://localhost:50070/ 로 접속해서 아래와 같이 척와 스토리지를 확인할 수 있다.

chukwa_hadoop_console

참고자료

  • 클라우드 컴퓨팅 구현 기술 / 깅형준, 조준호, 안성화, 김병준 저 / 에이콘 출판사
  • 하둡 완벽 가이드 / 톰 화이트 지음 / 오라일리 출판사
  • Chukwa Documentation 4.0

크몽 재능

댓글 남기기