야후, '하둡'을 말하다

일반입력 :2011/03/09 10:56    수정: 2011/03/09 13:50

대용량 정보를 안정적으로 관리하고 비용효율을 달성하기 위한 수단으로 오픈소스가 주목받고 있다. 가장 널리 퍼지고 유명세를 탄 기술은 ‘하둡(Hadoop)’이다.

더그 커팅이 개발한 하둡은 분산 파일 시스템의 일종으로 대용량 데이터를 병렬처리하고 분석할 수 있다.

하둡의 탄생은 구글의 파일시스템에서 비롯된다. 구글이 자사 서비스 플랫폼을 논문 형태로 공개한 후 야후의 개발자 더그 커팅이 주도해 만들어 낸 것이다.

해외에서 하둡은 페이스북과 야후 국내에서 하둡은 네이버 등 인터넷 서비스업체에서 활발히 사용되는 기술이다. 최근 KT가 유클라우드 서비스를 위해 하둡 전문업체 넥스알 인수를 발표하면서 인기가도를 달리고 있다.

클라우드 컴퓨팅은 한 인프라에 존재하는 이용자도 정보량도 셀 수 없을 정도다. 막대한 데이터를 안정적으로 관리하지 못하면 클라우드 컴퓨팅을 도입한 이유마저 사라져 버린다.

또한 클라우드를 도입하는 기업들은 비용대비 최대 효과를 노린다. 때문에 인프라비용을 최대한 줄이게 되고, 클라우드 사업자는 저가 하드웨어로 인프라를 채우면서 오픈소스 SW로 안정성을 높이는 게 일반적이다. 안정성을 높이고 대용량 정보를 저장, 분석하기 위한 수단에 하둡은 선두권이다.

하둡을 만들어낸 더그 커팅은 야후를 떠나 클라우데라로 자리를 옮겼다. 하지만, 야후는 여전히 아파치 재단과 함께 하둡을 위한 지원을 멈추지 않고 있다.야후는 지금 하둡을 위해 어떻게 움직이고 있을까? 쉬밍옌 야후아시아 서치 엔지니어링 총괄 디렉터에게 들어봤다.

■하둡은 어떤 업무에 적용할 수 있나?

인터넷, 센서 네트워크, 바이오인포매틱스 등의 기술 및 산업 발전에 따라 데이터 폭증 시대로 접어들면서, 대규모 데이터를 기반으로 의미있는 정보를 추출하고 해석하기 위한 기술이 필요하게 됐습니다. 가령 웹 포털에서 검색 서비스를 제공하기 위해서는 크로울러(Crawler)로부터 수집된 데이터를 기반으로 키워드를 추출하고 인덱스를 구축 및 저장 관리해야 한다.

이동통신 또는 미디어 서비스 제공 사업자는 하루 수십만 건의 콜로그와 서비스 로그 데이터를 분석해 유사 관심 고객의 트렌드를 분석한 개인 맞춤형 서비스를 제공할 수 있으며, 서비스 인프라 자원을 효율적으로 관리할 수 있다. 바이오인포매틱스 분야는 염기서열 정렬, 유전체 변이정보 분석, 단백질 구조 모델링을 통한 신약개발 분야에서 활용할 수 있다.

현재 하둡은 사실상 대용량 데이터 처리 플랫폼의 표준으로 통하며, 대규모 글로벌 서비스를 제공하는 인터넷 서비스 기업과 페이스북, 트위터 등 소셜네트워킹서비스(SNS) 기업에서 사용중이다. 비즈니스 인텔리전스(BI), 바이오인포매틱스, 과학 계산 등으로 그 응용분야를 넓히고 있다.

■장애에 대한 하둡의 안정성은 어느정도인가?

하둡은 기존 RDBMS 방식으로 처리하기 어려운 데이터를 일정한 크기의 N개로 분할해 여러 컴퓨터에서 이들을 병렬로 처리한다. 그런 다음 그 결과를 취합해 사용자에게 제공하는 기술이다. 그러나 여러 디스크로에서 데이터를 병렬로 읽고 쓰려면 여러 가지를 고려해야 한다. 많은 하드웨어를 사용할수록 장애 발생 확률도 높아진다. 특히 저가의 하드웨어를 연결해 사용하는 경우 하드웨어 장애로부터 안정적인 게 중요하다.

HDFS(Hadoop Distributed File System)는 데이터 손실을 막기 위해 대상 데이터를 여러 곳에 복제한다. 이후 장애 발생시 시스템은 또 다른 데이터 복사본을 이용할 수 있도록 중복된 데이터 복사본을 관리한다. 복제 인수가 3인 일반적인 경우, HDFS의 배치 정책은 첫 복사본을 로컬 랙의 로컬 노드에, 두번째 복사본을 첫번재 복사본이 저장된 랙과 다른 외부 랙의 노드에, 마지막 복사본은 두번째와 같은 랙에서 무작위로 선택된 다른 노드에 넣는다. 동일한 복사본이 두개 랙에 저장되기 때문에 하드웨어 장애에 안정적이다.

■하둡 기술의 최신 트렌드는 무엇인가?

하둡 기술은 지난 몇 년새 20노드 프로토타입에서 4천노드 양산 클러스터까지 지원하는 오픈 소스 기술로 발전을 거듭했다. 하지만 현재의 하둡 맵리듀스 플랫폼을 한단계 더 발전시키기 위해서 몇 가지 해결 과제가 있다.

한 가지 예로 맵리듀스 잡트래커의 경우 메모리 사용에 대한 기술적 결함을 극복할 필요가 있으며, 더 높은 확장성과 성능을 얻기 위한 병행 모델도 필요하다. 이밖에 현재 하둡 커뮤니티를 중심으로 사용자들이 하둡을 보다 쉽게 이해하고 사용할 수 있도록 새로운 맵리듀스 아키텍처에 대한 논의와 함께 맵리듀스 API 향상, 웹사이트 강화, 객체 직렬화 프레임워크 등에 대한 기술 논의도 활발히 전개되고 있다.

■하둡이 엔터프라이즈로 확산되려면 어떤 요소들이 고려돼야 할까?

하둡의 사용 편이성, 안정성 덕분에 기업들은 하둡을 엔터프라이즈급 플랫폼으로 채택, 구축할 수 있게 됐다. 현재 페이스북, 트위터, 아마존을 비롯한 수천개의 기업들이 하둡 기반으로 서비스를 구축하고 있다.

하둡이 대용량 분산 컴퓨팅 플랫폼으로서 매력적이다. 하지만 기업들이 회사 내 클라우드 컴퓨팅 인프라에 하둡을 비롯한 오픈소스 소프트웨어를 적용할 때 전략적 선택을 해야 한다.

내부 기술 인력과 외부의 든든한 지원 파트너를 확보하지 못하면 말 그대로 그림의 떡일 수밖에 없다. 다음으로 서비스 규모나 처리해야 할 데이터의 량과 건수들을 정확히 파악해야 한다. 하둡은 대용량 데이터 처리에서 진가를 발휘하는 만큼 서비스 규모가 작은 곳에 하둡을 적용할 경우 소 잡는 칼로 닭을 잡는 우를 범하는 셈이다.

■오픈소스인데 기술 지원은 어떻게 받을 수 있는지

오픈소스 소프트웨어에 대한 기술 및 유지보수 지원은 별도의 기술 지원 전문기업이 유상으로 제공하는 것이 일반적이다. 현재 많은 회사들이 하둡에 대한 엔터프라이즈급 기술 지원을 서비스 하고 있다. 하둡에 대한 기술지원을 제공하고 있는 업체들은 IBM, 클라우데라(Cloudera) 등이 있다.

■야후는 하둡 기술 진화에 어떻게 기여하고 있는가?

야후의 경우 지난 6년간 세계적 수준의 오픈 소스 기반의 대용량 분산 컴퓨팅 플랫폼 프로젝트를 통해 하둡 개발을 지원해 왔다. 이러한 기술 개발 노력과 지원을 통해 야후 사용자들과 광고주들은 하둡과 ‘야후 클라우드’를 기반으로 역동적이고 신뢰할 수 있는 개인화된 웹을 경험하고 있다.

오픈소스 플랫폼이기 때문에 누구나 가져다 쓸 수 있지만, 하둡을 시스템에 적용한 기업에 장애가 발생해도 야후에서 기술지원을 해주지는 않는다. 다만 야후는 하둡 및 클라우드 컴퓨팅 기술개발을 주도하는 선도기업으로서 다른 기업들이 보다 효율적으로 하둡을 적용할 수 있도록 ‘하둡 야후 배포판’, ‘피그(Pig)’, ‘야후 트래픽 서버’, ‘주키퍼(Zookeeper)’ 등의 기술을 개발, 공개했다.

야후는 또한 젠(Xen)과 하이브(Hive) 등 하둡 관련 핵심 프로젝트 커뮤니티에서 다양한 오픈 소스 기술들을 채택하고 기여한다. 한편, 클라우드 서비스 및 클라우드 스토리지를 포함해 클라우드 인프라 구축에 필요한 소스들을 관련 커뮤니티에 배포할 계획이다.

■언급된 기술에 대해 더 설명을 부탁한다.

하둡 야후 배포판은 연구실에서 모의실험을 할 수 없을 정도의 방대한 규모로 실행되며 테스트할 수 있다.

하둡의 서브프로젝트 중 하나인 ‘피그’는 대규모 데이터세트에 대한 분석을 위해 ‘야후 랩’이 개발한 관계형 대수 쿼리 언어 인터페이스로, 하둡을 통해 일반 사용자들의 데이터 통찰력을 얻는 것이 중요하다. 현재 트위터가 이를 사용중이다.

야후 트래픽 서버는 빠르고 확장 가능하며, HTTP/1.1을 준수하는 ‘플러그인’ 아키텍처 기반의 캐싱 프록시 서버다. 개발자들은 야후 트래픽 서버를 이용해 기존의 플러그인들을 개별화하거나 특정 애플리케이션 로드 밸런싱 및 URL 매핑과 같은 작업들을 간소화할 수 있다. 야후의 경우 이를 통해 하루에 300억개 이상의 웹 개체와 400테라바이트 이상의 데이터를 야후 네트워크를 통해 제공한다.

역시 야후 랩에서 개발한 주키퍼는 수 천 개의 컴퓨터를 사용하는 어떠한 분산 컴퓨팅 환경에서도 성능과 관련 작업을 관리할 수 있도록 한 신뢰도 높은 가용 서비스다.

■야후 내부에서는 하둡을 어떤 형태로 쓰고 있는가?

현재 야후 내부의 하둡은 4만개 이상의 노드로 구성됐다. 사용되는 하둡 클러스터는 20여개로 가장 큰 클러스터는 4천대 기계로 구성된다. 각 노드의 하드웨어 스펙은 조금씩 다른데 일반적으로 2x 쿼드코어 1.86GHz 인텔 제온 CPU, 16GB 램, 4x 750GB 하드디스크 정도의 사양이다.

■야후 서비스 측면에서 활용은 어떤게 있나?

클라우드 컴퓨팅은 야후의 소셜 전략을 이끄는 핵심이다. 하둡을 통해 야후는 사용자의 업데이트 정보뿐만 아니라 상태 메시지와 야후 네트워크 콘텐츠, 페이스북과 트위터 같은 글로벌 파트너의 피드를 모은다.

검색도 하둡을 사용한다. 하둡은 검색 쿼리 및 광고 연관성과 관련된 콘텐츠 매칭을 위한 학습 기술을 수행하는 핵심 기술로 활용된다. 지도상의 위치 태깅, 콘텐츠 카테고리 태깅 등도 있다. 태깅을 통해 애플리케이션은 사용자에 적절한 콘텐츠를 빠르게 파악할 수 있다. 하둡은 기계학습 모델을 이용해 콘텐츠 태깅을 하고, 이렇게 보강된 콘텐츠가 시스템으로 전송돼 필요한 사용자들에게 제공된다.

야후 홈페이지에서 콘텐츠를 최적화 하는 데도 사용중이다. 방문자 각자에 맞게 야후 홈페이지를 개인화하는 것이다. 하둡은 사용자 프로필과 분류를 목적으로 콘텐츠 카테고리 모델을 구현하는데 사용된다. 이런 프로필과 분류는 사용자 활동에 근거하며, 이런 인사이트는 적절한 콘텐츠를 사용자에게 제공하는 데 이용된다.

하둡은 이용자의 최근 활동에 근거해 관심사를 예측하는데 사용되고 있다. 이러한 예측을 통해 시스템이 사용자에게 적절한 콘텐츠와 광고를 선별하는데 이용할 수 있다.

야후는 클라우드를 통해 사용자 참여를 이끌어 낼 수 있는 풍부한 콘텐츠 그리드 및 리치 글로벌 사이트를 지원하고 있다. 광고의 경우 하둡은 야후의 차세대 디스플레이 광고 시스템을 위한 플랫폼으로써 향후 상황예측과 하루 180억건의 광고단가 산정에 최적화됐다. 야후는 광고주와 사용자를 위한 페이지뷰와 클릭 현황 데이터에 대한 분석을 제공한다. 복잡한 워크플로에서 ETL은 하둡에서 구동 돼 다각도로 광고주와 사용자 메트릭스를 분석한다.

이밖에 하둡은 야후의 개인화 서비스의 핵심 기술로 사용되며, 야후닷컴의 서로 다른 3만2천여개 ‘Today 모듈’ 클릭률을 최적화 해준다.

야후는 또한 젠(Xen)과 하이브(Hive) 등 하둡 관련 핵심 프로젝트 커뮤니티에서 다양한 오픈 소스 기술들을 채택하고 기여하고 있다. 향후 클라우드 서비스 및 클라우드 스토리지를 포함해 클라우드 인프라 구축에 필요한 소스들을 관련 커뮤니티에 배포할 계획이다.

■야후의 클라우드 컴퓨팅 전략은 무엇인가?

야후는 타 클라우드 서비스와 확실한 차별화를 위해 오픈소스에 집중하고 있다. 이를 바탕으로 조만간 새로운 클라우드 서비스 엔진을 선보일 계획이다. 개발자들이 보다 더 쉽게 높은 수준의 클라우드 서비스를 구축할 수 있도록 지원한다는 방침 하에 복잡함을 최대한 배제할 것이다.

새로운 클라우드 서비스 개발에 역시 하둡을 이용하며, 클라우드 서비스 엔진은 자바 C++로 디자인되고, PHP와 자바 스크립트도 지원할 예정이다. 오픈소스 형태로 리눅스, 아파치, MySQL, PHP(LAMP)와 자바 스택을 기본으로 하고 있다. 파이썬(Python)이나 마이크로소프트의 닷넷 프레임워크와 같은 다른 형태의 언어도 채택 가능하다. 특히 외부 사용자들이 알 수 없었던 중요한 구성요소들도 오픈 소스 형태로 공개, 프로젝트화 시켜 우군을 확보하겠다는 전략이다.

■클라우드 컴퓨팅은 보안에 대한 우려가 여전하다. 야후는 개인 사용자 데이터 관리 측면에서 어떤 노력을 하고 있나?

관련기사

야후는 클라우드 컴퓨팅 도입이나 정보의 저장 위치에 관계없이 지속적으로 높은 수준의 프라이버시 정책을 유지하고 있다. 클라우드에 저장된 데이터의 경우에도 엔터프라이즈급의 강력한 보안 솔루션을 적용했다.

하둡 보안 기술이 적용되기 전에는 별도의 클러스터에 해당 데이터를 격리하고, 불법적인 접근을 차단하기 위해 엔터프라이즈급 보안을 적용하는 방식을 취했다. 하둡 보안 기술을 도입한 이후로는 강력한 인증을 통해 각각 다른 사업부에서 오는 데이터를 안전한 방식으로 저장, 관리하고 있다.