오랜만에 방문한 국산 포탈에 "포스코 라면"이라는 요상한 검색어가 하나 올라와더라. 살펴보니 올해 초 진급한 포스코 임원이 대한항공 이용 중 기내식이 입맛에 안맞아 라면을 끓여달라 주문하고는 짜거나 설익었다며 폭행했다는 내용이더군.
사람 됨됨이를 보려면 권력을 줘보라는 말이 맞나 싶으면서도 한편으로는 안쓰러웠다. 왜냐면 (어디까지나 내 생각엔) 권력을 아주 힘들게 쌓아올린 사람일수록 권력적 교만의 정도가 심하기 때문에, 얼마나 치열하게 올라간 자리인지 안봐도 훤히 보였으니까.
태생부터 위치한 본래의 클래스에 속해 변함없이 사는 사람은 일반적으로 교만은 없다. 그 사람 태생이 엘리트였으면 그런 교만도 없었을것. 호랑이가 알통자랑 않는것처럼, 교만이란 어쩌면 지위박탈 위기감에서오는 허세 아닌가 싶다.
나 또한 요즈음, 나태해지고 교만해짐을 스스로 느끼는데 진중히 돌봐야할 문제인듯 하다.
아파치 하마 설치 및 페이지랭크 예제 실행해보기
한국 분들에게서 질문이 제법 오고 있어서 한글로 하나 작성합니다. 모두 개별적으로 답변드리기는 쉽지가 않네요.
미리 준비해야할 것들
미리 준비해야할 것들
- 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
Subscribe to:
Posts (Atom)
-
음성 인공지능 분야에서 스타트업이 생각해볼 수 있는 전략은 아마 다음과 같이 3가지 정도가 있을 것이다: 독자적 Vertical 음성 인공지능 Application 구축 기 음성 플랫폼을 활용한 B2B2C 형태의 비지니스 구축 기 음성 플랫폼...
-
무한 집합의 크기 Cardinality , 즉 원소의 개수를 수학에서는 '농도'라고 말한다. 유한 집합의 크기는 그대로 원소의 개수 이지만, 무한 집합의 경우는 원소의 개수를 낱낱이 셈하는 것은 불가능하기 때문에 '농도'라...
-
In addressing the growing problem of junk email on the Internet, I examined methods for the automated construction of filters to eliminate s...