반응형

출처: http://blog.ncsoft.com/?p=248

 

엔씨가 사용하는 오픈소스 #1

 

빅데이터 처리기술 :

     ‘하둡(HADOOP)’

 

 

 

Q2. 엔씨소프트 속 하둡을 다루기 전에 하둡이란 오픈소스에 대해 간단히 설명 부탁 드립니다.

노재호 : 하둡의 약자를 설명 드리면 (HADOOP/High-Availability Distributed Object-Oriented Platform)입니다. 재미나게도 하둡이 만들어진 다음에 붙여졌다고 합니다. 간단하게 설명을 드리면 대용량 자료를 처리할 수 있는 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 오픈소스 자바 프레임워크입니다.

박수혁 : 하둡은 더그 커팅(Doug Cutting)이라는 개발자가 넛치(Nutch)라는 검색엔진을 개발하는 과정에서 탄생되었습니다. 하둡은 크게 분산 저장과 병렬 처리, 2개의 프레임워크로 구성되어 있습니다. 분산 저장은 클러스터 환경에서 대용량 데이터를 분산하여 안정적으로 저장하는 프레임워크이고, 병렬 처리는 저장 환경 위에서 병렬로 데이터 Processing하는 프레임워크입니다.

박경재 : 여러 대의 컴퓨터를 모아 디스크를 묶어서 쓸 수 있게 하는 분산 저장소와, CPU를 동시에 쓸 수 있는 병렬 처리 소프트웨어 라이브러리입니다. 다만 어려운 점은 하둡에서 지정한 방식으로만 사용하는 것입니다.

노재호 : 요약하자면 하둡은 동시다발적으로 발생한 데이터를 분산해서 저장하는 것입니다.

 

 

 

Q3. 아! 하둡 좋은 거군요. 그럼 여기 계시는 전문가 분들은 하둡으로 무엇을 하고 있나요?

노재호 : 게임에서 발생하는 게임로그와 정보계 쪽에서 발생하는 데이터를 적재하고 있습니다. 그리고 하둡 에코 시스템 전체 플랫폼의 서비스를 관리, 운영하고 있습니다. 이외에도 장애 처리, 성능 튜닝까지 담당하고 있습니다.

박수혁 : ETL이라는 데이터 수집, 변환, 적재 작업을 하고 있습니다. 기존 상용툴로 하던 작업, 예를 들면 비즈니스 로직, 데이터 리포트, 서머리 팩트 생성 등을 하둡 에코 시스템 위에 존재하는 Scoop, Plum, Pig와 같은 오픈소스로 개발 운영하고 있습니다.

박경재 : 하둡 관리를 하고 있습니다. 버그픽스 및 버그패치 적용 등 오픈소스를 계속 따라가는 작업을 하고 있습니다. 이외에도 성능 향상을 위한 적재와 조회 전용 도구 개발을 하고 있습니다. 현재 실시간 처리 개발에 주력하고 있습니다.

 

 

Q4. 언제부터 하둡을 사용하셨나요? 규모는 어느 정도죠?

노재호 : 엔씨소프트에서 라이브서비스 수준으로 사용한 것은 2011년도부터였습니다. 서버 50대로 시작하였습니다. 2014년 현재는 대략 300여대 규모까지 늘어난 상태입니다. 페이스북이나 야후의 경우 몇 천대 규모 단위로 이야기하고 있습니다. 현재 저장할 수 있는 스토리지 용량은 2.6PB(페타바이트) 입니다. 이는 대략 노래 5억 6천만 곡 혹은 영화 400만 편을 담을 수 있는 용량입니다. 또한 하둡 뿐만 아니라 에코시스템 안에서 오픈소스 9종과 실에서 개발된 인하우스(in-house) 5종을 운영하고 있습니다.

Q5. 하둡을 사용하면서 힘들었던 점이 있다면?

노재호 : 오픈소스의 경우 서비스 지원을 받을 수 없기 때문에 장애 발생 시 원인 파악이 어렵고 패치도 쉽지 않아 힘들었습니다. 게다가 오픈소스가 9종이다보니 하둡 뿐 아니라 여기저기 문제가 발생하기도 했습니다. 힘이 들기도 하지만, 최신 트렌드를 끌어가고 있다는 점에서 자부심을 가지고 있습니다.

Q6. 엔씨소프트에 맞는 하둡 플랫폼은 어떤 것인가요? 개발자 혹은 운영자의 역할은 무엇이라 생각하나요?

박수혁 : 어느 회사든 마찬가지겠지만, 모든 비즈니스에 딱 맞아떨어지는 오픈소스 플랫폼이란 없는 것 같습니다. 회사의 데이터 크기, 응답 속도, 데이터 생성 속도와 빈도에 따른 스택이 별도로 설계 되어야 합니다. 결국에는 비즈니스에 대한 이해와 오픈소스에 대한 분석 능력을 통해 균형 맞는 오픈소스 플랫폼을 만드는 것이 중요합니다. 회사의 상황에 가장 적절한 형태로 수정이나 재조합을 하는 셈이죠. 다양한 형태의 레고 블록을 조합하여 완성품을 만드는 것처럼 회사의 상황에 가장 적절한 소스를 선정하고, 기존 소스를 수정하거나 재조합 하는 일이 개발자 혹은 운영자의 역할이 아닌가 싶습니다. 제 개인적인 목표이기도 하고요.

Q7. 말씀주신 레고 블록을 만드는 것처럼 필요한 부분을 결합하여 사용할 수 있는 개발자가 있다면 오픈소스 플랫폼을 가져가는 것이 회사의 경쟁력이 될까요?

박수혁 : 오픈소스를 다루는 일이 개발자에게는 부담도 크고, 비용이 적은 것도 아닙니다. 하지만 적절한 오픈소스 플랫폼을 가져가게 된다면 개발자나 운영자의 입장에서 필요한 부분에 집중할 수 있게 해주기 때문에 IT 경쟁력 제고에 큰 역할을 할 것이라고 생각합니다. 가장 중요한 부분이기도 하고요.

Q8. 하둡이 오픈소스라 내재하고 있는 버그가 많은데, 어떤 버그가 있었고 어떤 방식으로 해결하셨나요?

박경재 : 하둡은 오픈소스이기 때문에 현재 알려진 버그만 수천 개입니다. 하지만 모든 버그가 저희 시스템에 해당되진 않으니 나머지는 무시하고 저희 시스템에 맞는 내용만 보완하고 있습니다. 하둡의 운영 중에 버그가 발생하면 버그가 리포트되는 하둡 JIRA (https://issues.apache.org/jira/browse/HADOOP)에서 내용을 참고하여 문제를 해결하고 있습니다. 한 번 저희 작업 중에 하둡 JIRA에서 확인할 수 없는 버그가 발생했었는데 새로운 버그로 확인되어 공식적으로 등록된 사례도 있습니다.

 

Q9. 하둡은 소규모나 작은 회사에는 어울리지 않다고 하는데, 어느 정도 규모가 되어야 쓸만할까요?

박경재 : 하둡이 유용한 기술이기는 하지만 섣불리 도입해서는 안 된다고 생각합니다. 소규모 회사에서 처리할 데이터가 DBMS로는 감당이 안 되는 경우에만 하둡의 도입을 검토해야 합니다. 적용하더라도 장비와 개발자 비용을 감내할 수 있어야 합니다.

박수혁 : 하둡이 성숙함에 따라 새로운 오픈소스를 도입하고 있습니다. 하지만 이미 공개된 오픈소스의 종류가 수백 가지나 되기 때문에 시스템에 맞는 소스를 선정하기에 어려움이 많습니다. 급하게 도입하려 하지 말고 많은 테스트를 거쳐 신중하게 진행하는 것이 중요한 것 같습니다.

노재호 : 하둡을 도입하는 데에는 사전 지식보다는 오픈소스의 험난한 파도를 넘을 수 있는 인내력이 필요합니다. 오픈소스는 버그가 많고 기술 지원이 없다 보니 해결책을 찾기가 쉽지 않습니다. 그러니 끝이 보이지 않는 바다 위에 혼자 있는듯한 느낌을 받을 때가 있습니다. 개발자로서 이를 극복할 수 있는 자세가 중요합니다.


 

반응형

+ Recent posts