미리 준비해야할 것들
- Hadoop 1.0의 HDFS
- Hama 0.6 버전까지는 Hadoop 1.0과 CDH3만을 지원하고 있습니다.
- Sun/Oracle 배포 Java
- SSH
- Hama 최신버전을 다운로드 합니다.
이 글에서는 준비가 다 완료되었다고 가정하고 바로 하마 설치 들어가봅시다.
분산 모드로 설치하기
Hama 최신버전 타르볼을 압축해제한 후, 편집해야할 파일은 conf 디렉토리 밑에 groomservers, hama-env.sh, 그리고 hama-site.xml 세 개 입니다.
1) 먼저 hama-env.sh 파일을 까서, 아래와 같이 JDK가 설치된 경로와 zookeeper 실행여부를 선택합니다 (주키퍼를 설치해놓지 않았으면 true로 하고, 기존 설치된 주키퍼를 쓰려면 false로 합니다).
# The java implementation to use. Required. export JAVA_HOME=/usr/lib/jvm/java-7-oracle ... # Tell Hama whether it should manage it's own instance of Zookeeper or not. export HAMA_MANAGES_ZK=true
2) 이제 hama-site.xml 을 까서 다음과 같이 기본적으로 설정되어야할 properties를 작성해줍니다. 항목별로 설명하면 bsp 프레임워크의 마스터 서버의 호스트명과 포트번호, HDFS 파일시스템의 네임노드 호스트명과 포트번호, 주키퍼 호스트명, 그리고 인풋 데이터 파티셔닝을 실시간 처리하겠다는 설정 값들입니다.
데몬 실행 및 페이지랭크 실행해보기
설정이 끝났으면, 다음과 같이 start-bspd.sh 구동 스크립트로 데몬을 실행합니다.
<property> <name>bsp.master.address</name> <value>server01.udanax.org:40000</value> </property> <property> <name>fs.default.name</name> <value>hdfs://server01.udanax.org:9000/</value> </property> <property> <name>hama.zookeeper.quorum</name> <value>server01.udanax.org</value> </property>3) 여기까지 되었으면 이제 groomservers 파일을 열어서, 슬레이브로 동작할 서버들의 호스트명을 다음과 같이 나열해줍니다:
server02.udanax.org server03.udanax.org server04.udanax.org ...설정이 완료되면, sever01.udanax.org 서버가 마스터로 나머지 02~04번까지의 서버가 슬레이브로 동작하게 됩니다.
데몬 실행 및 페이지랭크 실행해보기
설정이 끝났으면, 다음과 같이 start-bspd.sh 구동 스크립트로 데몬을 실행합니다.
$ bin/start-bspd.sh $ tail -f logs/hama-edward-bspmaster-udanax.org.log 2013-04-29 15:46:10,198 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2013-04-29 15:46:10,198 INFO org.apache.hama.bsp.BSPMaster: Starting RUNNING 2013-04-29 15:46:21,165 INFO org.apache.hama.bsp.BSPMaster: groomd_server02.udanax.org_50000 is added.
로그를 보면 슬레이브들이 마스터서버에 추가되는 것을 볼 수 있습니다. 데몬이 잘 올라왔다면 이제 예제를 실행해볼 수 있습니다. 다음 명령어는 Pi 계산하는 예제입니다.
$ bin/hama jar hama-examples-0.6.1.jar pi 13/04/29 15:50:15 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog 13/04/29 15:50:16 INFO bsp.BSPJobClient: Running job: job_201304291546_0001 13/04/29 15:50:19 INFO bsp.BSPJobClient: Current supersteps number: 0 13/04/29 15:50:22 INFO bsp.BSPJobClient: Current supersteps number: 1 13/04/29 15:50:22 INFO bsp.BSPJobClient: The total number of supersteps: 1 13/04/29 15:50:22 INFO bsp.BSPJobClient: Counters: 6 13/04/29 15:50:22 INFO bsp.BSPJobClient: org.apache.hama.bsp.JobInProgress$JobCounter 13/04/29 15:50:22 INFO bsp.BSPJobClient: SUPERSTEPS=1 13/04/29 15:50:22 INFO bsp.BSPJobClient: LAUNCHED_TASKS=3 13/04/29 15:50:22 INFO bsp.BSPJobClient: org.apache.hama.bsp.BSPPeerImpl$PeerCounter 13/04/29 15:50:22 INFO bsp.BSPJobClient: SUPERSTEP_SUM=3 13/04/29 15:50:22 INFO bsp.BSPJobClient: TIME_IN_SYNC_MS=220 13/04/29 15:50:22 INFO bsp.BSPJobClient: TOTAL_MESSAGES_SENT=3 13/04/29 15:50:22 INFO bsp.BSPJobClient: TOTAL_MESSAGES_RECEIVED=3 Estimated value of PI is 3.1424 Job Finished in 6.432 seconds정상적으로 설치가 잘 되었다면 위와 같이 Pi 계산 결과값이 나오는것을 볼 수 있습니다. 성공하셨나요? :D 그럼 다음으로 이제 좀 더 현실적인 예제 PageRank를 계산하는 예제를 실행하려면, 먼저 generator 커맨드로 100개의 vertices와 1,000개의 edge를 갖는 랜덤 그래프 데이터를 HDFS 상에 생성합니다.
$ bin/hama jar hama-examples-0.6.1.jar gen symmetric 100 10 randomgraph 2 13/04/29 15:54:45 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog 13/04/29 15:54:46 INFO bsp.BSPJobClient: Running job: job_201304291546_0002 13/04/29 15:54:49 INFO bsp.BSPJobClient: Current supersteps number: 0 13/04/29 15:54:52 INFO bsp.BSPJobClient: Current supersteps number: 1 13/04/29 15:54:52 INFO bsp.BSPJobClient: The total number of supersteps: 1 13/04/29 15:54:52 INFO bsp.BSPJobClient: Counters: 6 13/04/29 15:54:52 INFO bsp.BSPJobClient: org.apache.hama.bsp.JobInProgress$JobCounter 13/04/29 15:54:52 INFO bsp.BSPJobClient: SUPERSTEPS=1 13/04/29 15:54:52 INFO bsp.BSPJobClient: LAUNCHED_TASKS=2 13/04/29 15:54:52 INFO bsp.BSPJobClient: org.apache.hama.bsp.BSPPeerImpl$PeerCounter 13/04/29 15:54:52 INFO bsp.BSPJobClient: SUPERSTEP_SUM=2 13/04/29 15:54:52 INFO bsp.BSPJobClient: TIME_IN_SYNC_MS=121 13/04/29 15:54:52 INFO bsp.BSPJobClient: TOTAL_MESSAGES_SENT=516 13/04/29 15:54:52 INFO bsp.BSPJobClient: TOTAL_MESSAGES_RECEIVED=516 Job Finished in 6.279 seconds그 다음 페이지랭크를 실행하면 끗~
$ bin/hama jar hama-examples-0.6.1.jar pagerank randomgraph pagerankresult 4
No comments:
Post a Comment