엔씨가 사용하는 오픈소스 #1 빅데이터 처리기술 : 하둡(HADOOP)

 

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

 

빅데이터 처리기술 :

     ‘하둡(HADOOP)’

 

진행 : 윤종완 실장(데이터플랫폼실 실장)

참여 : 노재호 차장, 박경재 차장, 박수혁 차장

 

오픈소스_0

 

자고 일어나면 연봉이 상승한다는 꿈의 직업이 있습니다. 2014 IT 자격증 HOT 리스트에도 빠짐없이 등장하는 직업, 빅데이터 엔지니어! 빅데이터란 데이터의 생성 양과 주기, 형식 등이 방대한 데이터를 이르는 말인데요, 인터넷의 발달로 인해 자연스럽게 데이터량이 방대해졌고 이에 따라 방대한 데이터를 전문적으로 분석하는 이들이 생겨났고, 그것이 바로 빅데이터 엔지니어입니다.

엔지니어들이 빅데이터를 처리하는 다양한 수단 중, ‘하둡(HADOOP)’은 최근 몇 년 동안 폭발적인 사용증가세를 나타냈습니다. 빅데이터의 대명사격 오픈소스인 하둡은 어마한 양의 데이터를 비교적 쉽게 처리할 수 있는 분산파일 시스템(빅데이터 처리시스템)입니다. 기업들 사이에 빅데이터의 중요성이 대두됨에 따라 하둡은 전성기를 누리게 되었죠. 하둡은 최근 몇 년간 연평균 60%에 가까운 성장률을 기록했으며, 전문가들은 향후 시장 규모가 그 이상이 될 것이라 예측하고 있답니다.

그런데 이 하둡을 이미 도입하여 사용하고 있는 회사가 있습니다…바로 엔씨소프트! 미래를 내다보고 적극적으로 하둡을 도입한 엔씨소프트는 현재 전사적으로 이를 활용하고 있어요. 우주정복 블로그는, 엔씨소프트의 정보기술 전문가들과 함께 IT 핫 키워드 ‘하둡’에 대해 이야기를 나누는 시간을 가져보았습니다. =ㅂ=b


Q1. 간략하게 자기 소개를 부탁 드립니다.

윤종완 : 안녕하세요, 오늘 진행을 맡은 윤종완입니다. 엔씨소프트 데이터플랫폼실을 맡고 있습니다.

노재호 : 안녕하세요, 노재호입니다. 하둡과 하둡 에코시스템을 운영하고 있습니다.

박수혁 : 안녕하세요, 박수혁입니다. 하둡 플랫폼 기반 위에서 데이터를 수집, 변환, 적재하는 ETL 인프라를 개발 및 운영하고 있습니다.

박경재 : 안녕하세요, 박경재입니다. 하둡 인프라와 인프라 지원 솔루션을 개발하고 있습니다.

 

오픈소스_2

 

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

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

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

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

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

 

오픈소스_3_1

 

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

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

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

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

 

오픈소스_4

▲ 노재호 / 박수혁 / 윤종완 / 박경재 (좌측 상단부터 시계방향으로)

 

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에서 확인할 수 없는 버그가 발생했었는데 새로운 버그로 확인되어 공식적으로 등록된 사례도 있습니다.

오픈소스_1

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

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

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

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


우리는 트렌드를 이끌어가는 선도자를 리더라고 부릅니다. 엔씨소프트는 국내 게임업계를 리드하는 기업으로 꼽혀왔죠. 운이 좋았기 때문이라고 평하는 이들도 있었지만, 1등이 되는 것보다 힘든 것은 1등을 지키는 일이라는 사실을 누구나 알고 있습니다. 끊임없이 생겨나는 후발기업과 기업들의 새로운 도전에 맞서 자리를 지키기 위해서는 그 이상의 도전과 노력이 필요합니다. 실제로 엔씨소프트의 오픈소스는 업계에서 늘 후행되곤 하고, 이는 앞장서 나가는 기업에게 있어 부담이 되기도 하지만 큰 자부심이 되기도 합니다. 후발기업과의 차별화, 끊임없는 최고의 자리를 지키기 위해 앞으로도 엔씨소프트는 부지런히 새 기술을 익히고, 분석하고, 만들어 나가겠습니다:D

 

다음 편에서는 엔씨가 사용하는 빅데이터 ‘분석 도구’에 대해서 이야기 나누어 보겠습니다. 다음 편 보기(클릭)