본문 바로가기

오픈소스/hadoop

한국 하둡 커뮤니티 두 번째 모임을 다녀왔습니다

한국 하둡 커뮤니티 구글 그룹스

 첫 번째 세션은 한재선 박사님께서 (NexR) 'Naive Bayes Classifier를 이용한 Spam Filtering의 MapReduce 구현' 이라는 주제로 강연을 해주셨습니다.

 실제 돌아가는 환경에서 시연도 해주셨고요.. 물론 MapReduce 시연이라면 아시는 분들은 다 아시겠지만, MapReduce결과 로그와 vi 로 결과 파일을 읽는 것 밖에는 없지만 말입니다.  이러한 부분 외에도 기계학습을 분산환경에서 쉽게 운영할 수 있는 플랫폼을 개발하고 계신다는 소식과 더불어, 조만간 그러한 서비스 환경을 일반인에게도 공개한다는 언급도 하셨습니다.

 가상화를 통하여 제한된 환경이긴 합니다만, 분산환경을 접하기 힘든 개발자 입장에서는 희소식이 아닐 수 없겠습니다. 또, Evaluator에 대한 내용과 Sync에 대한 내용이 나왔을 때에는 고개가 끄덕거려 졌습니다. 저도 많이 공감하는 부분도 많았고요, 그리고 Evaluator 결과 화면에서 아주 익숙한 Text 출력이 나왔는데, WEKA도구의 일부를 차용하셨다고 하시더군요... ^^ 출력 포맷까지 동일한 것으로 보아 그래도 가져오신듯 합니다만.... :-)

 개인적으로 질문 드린 사항은 소개해 주신 자료에도 언급되어 있는 내용입니다만, Neural Network 등과 같은 학습시에 공유되는 정보가 반드시 필요한 경우에 어떤 방식으로 접근하는 것이 좋을지에 대한 것인데, 아래와 같은 네 가지 정도의 선택지를 얘기해 주셨습니다.

 Hadoop MapReduce 사용시 데이터 공유
1. HDFS에 직접 저장하고 읽어오는 방식
2. Distributed Cache 를 이용한 방식
3. HBase를 이용하는 방식
4. RDBMS를 이용하는 방식
5. MemCache를 별도의 장비를 통하는 방식

두 번째 세션은 현재 NHN에 근무하시는 김형준님께서 'HBase 테스트 결과 및 하둡에 대한 최근 0.18 릴리스'에 대한 내용도 언급해 주셨습니다. 아주 Practical한 주제였고, 제가 현재 구현하고 있는 저장소와 관련이 많아서 재미있게 들은 세션입니다.

 HBase 성능 결과
1. Random write 2,595/sec
2. Random read    565/sec
3. Sequential read 598/sec
4. Scanning       5,991/sec

 가장 궁금하게 생각했던 점 중에 하나가, HBase에서의 ChangeSet 저장에 관한 부분이었는데, 명확히 설명해 주셨습니다. 현재 Hbase의 경우 changeset을 Hadoop을 통한 저장을 하고 있으므로, 하둡의 특성상 어느정도의 임계치에 도달하지 않은 내용의 데이터는 Failover가 불가능 하다이며, Hadoop의 append 기능이 추가되면 어느정도 성능을 희생해서는 가능하지 않을까 생각한다고 하셨습니다. 이외에도 ZooKeeper 및 MemCache 등 흥미진진한 주제에 대해서도 간략히 언급해 주셨구요, 다음 모임이 기대됩니다.

 Hbase changeset
1. Hadoop에 저장한다
2. 레코드 수 및 시간에 의한 Flushing이 이루어지므로, Failover에 취약하다
3. RangeServer가 얘기치 못한 종료시 최악의 경우 대략 2~3MB정도의 데이터 유실이 있을 수 있다.

마지막 세션은 고감자라는 아이디로 더 유명하신 전희원님 (현재 야후에 계십니다)께서 'Thinking Parallel'이라는 주제로 병렬처리에 관한 내용을 열강의 해주셨습니다.
병렬처리에 대한 개념을 갖고 개발자들도 임해야 한다는 다소 철학적인 내용도 있었고요, data and task parallelism에 대한 내용을 잘 설명해 주셨습니다.

관련 책자도 하나 소개해 주셨는데, 'Intel Threading Building Blocks'라는 책입니다.


 첫 번째 모임은 개인적인 사정으로 참석하지 못 했는데요, 아쉽고요, 매 달 한번 정도 모임을 할 예정이라고 합니다. 다음 모임에는 저도 한 가지 정도 발표할 수 있는 기회가 된다면 좋겠네요.. :-)