하둡 속도 높여라...파일 포맷 대권레이스

일반입력 :2013/12/11 16:07    수정: 2013/12/12 08:23

빅데이터 요소 기술인 하둡(Hadoop) 플랫폼에서 속도와 효율성을 높이기 위한 샅바싸움이 뜨겁다. 빅데이터 핵심 인프라로 자리잡은 하둡의 한계를 뛰어넘는 것을 놓고 벌어지는 싸움이다.

최근 빅데이터 업계에선 하둡분산파일시스템(HDFS)에서 데이터를 컬럼 기반으로 저장해 속도를 더 높이려는 시도가 본격화됐다. HDFS 자체가 컬럼 스토어를 구현하기 어렵고 속도에 한계가 있기 때문이다.

이를 위해 데이터 관리 플랫폼인 하이브에 저장되는 파일 포맷을 보다 고도화된 데이터 모델로 바꿔주는 ‘ORC파일(ORCfile)’과 ‘파케이(Parquet)’란 포맷이 개발됐다.

원래 하둡 파일은 텍스트 형태로 저장된다. 때문에 이를 조회, 분석하는 하이브에서는 컬럼스토어와 유사하게 구현하기 위한 RC파일(RCfile)이란 포맷이 적용됐다. 각 컬럼 묶음을 하나의 파일로 만드는 형식이다.

그러나 HBASE의 파일들은 각 데이터노드에 흩어져 저장되므로, DB 테이블을 조회할 경우 각 노드에 분산된 파일을 모으는 작업을 거치게 된다. 이런 ‘조인’ 단계는 네트워크 비용을 증가시킬 뿐 아니라, 전체 성능을 느리게 하는 원인이 됐다.이에 구글파일시스템(GFS) 구현 논문을 참고해 HDFS를 만들었던 ‘하둡의 아버지’ 더그 커팅 클라우데라 수석 아키텍트가 2011년말 트레비니(Trevini)란 포맷을 제안했다. 하지만 트레비니는 RC파일의 한계를 극복하기엔 단점이 많다는 지적을 받았다.

그러던 중 하이브의 주요 공헌자였던 오웬 오말리 현 호튼웍스 부사장이 ORC파일 포맷을 제안했다. ORC는 하나의 파일에 컬럼을 JSON처럼 네스티드 구조로 집어넣을 수 있고, 리스트와 맵, 스트럭트 등을 컬럼값 대신 사용한다.

ORC파일은 높은 압축률과 데이터 모델의 우수성으로 오픈소스 진영에서 많은 관심을 받았다. 다만 ORC파일은 하이브에서만 사용가능하고, 자바만 지원해 다양한 플랫폼에 적용하기 힘들다는 한계가 있다.이를 본 더그 커팅은 오웬 오말리에 접촉해 트레비니와 ORC파일의 공존을 모색했다. 하지만 오웬 오말리가 이끄는 호튼웍스와 더그 커팅의 클라우데라는 하둡과 빅데이터 시장에서 정면대결하는 경쟁 관계다. 이에 오말리가 더그 커팅의 제안을 거절하고 '각자도생'으로 결론났다. 이후 트레비니는 아브로(avro)란 프로젝트의 파일 포맷으로 발전했지만, 올해 들어 소스코드 개발에 기여하는, '커밋' 활동이 이뤄지지 않고 있다.

이런 가운데 트위터에서 파케이란 의외의 선물을 오픈소스 시장에 내놨다. 트위터는 자신들의 서비스 속도를 높이기 위해 하둡을 위한 컬럼 스토어 포맷이 필요해 파케이를 개발했다.

파케이는 무엇보다 하이브뿐 아니라 피그 같은 다양한 플랫폼에서 독립적으로 사용될 수 있게 만들어졌다. 트위터가 파케이 스펙을 공개하자 클라우데라가 달라붙었다. 클라우데라는 자신들의 SQL온하둡 기술인 임팔라에 파케이를 채택했다. 자바버전 외에도 C++버전도 나오게 된다.

구글 드레멜(Dremel) 논문을 참고로 해 고안된 파케이는 ORC파일처럼 네스티드 구조로 컬럼을 하나의 파일 안에 저장한다. 게시판에 댓글 달 듯 컬럼을 계층적 구조로 늘려가는 것이다.

각 컬럼 값마다 리피티드, 리콰이어드, 옵셔널 등의 구문을 넣을 수 있다. 여러 컬럼 테이블을 하나의 파일안에 집어넣음으로써 조인 작업을 최소화하자는 목적이 같다.

컬럼 스토어 파일포맷의 또다른 강점은 압축률이 높다는 것이다. 파케이도 높은 압축률을 보여준다. 인코딩 방식도 다양해 데이터 모델 표현력이 좋다는 평가다.

최현식 그루터 책임연구원은 “파케이는 컬럼별로 다양한 압축 코덱을 적용할 수 있고, 효율적인 컬럼 프로젝션 방법이 존재하는 게 주요 특징”이라고 설명했다.

호튼웍스와 클라우데라는 각자 주도하는 파일 포맷에 대해 자존심을 건 듯한 인상마저 풍긴다. 호튼웍스는 올해 중반 회사 블로그에서 ORC파일을 비롯한 여러 하둡용 파일포맷의 데이터세트 용량 크기 비교자료를 공개했다. 당연히 ORC파일이 동일한 데이터를 가장 작은 용량으로 저장했다는 내용이다.

그러자 지난 10월 미국 뉴욕에서 열린 '스트라타+하둡월드2013' 컨퍼런스에서 클라우데라가 이를 반박하고 나섰다. 더그 커팅은 호튼웍스의 비교자료는 공정하지 못한 것이라며, 압축 코덱을 달리한 자료라고 설명했다. ORC파일은 GZIP 코덱으로 압축하고, 파케이는 SNAPPY 코덱으로 압축했다는 것이다. 오히려 동일한 코덱을 썼을 경우 파케이가 ORC파일보다 더 작은 용량이란 점도 강조했다.

관련기사

ORC파일과 파케이 모두 사실 관계형데이터베이스(RDB)와 데이터웨어하우스(DW)에선 당연시 되던 것을 위해 고안된 것이다. 평평한 구조인 NoSQL과 하둡이 점차 RDB와 DW 진영의 기술을 흡수하며 발전하고 있다는 점을 반영한다.

최현식 책임연구원은 “ORC파일은 하이브와 호튼웍스에 밀접하고, 파케이는 플랫폼 독립적인 이미지”라며 “성능이 비슷하다고 해도 더 많이 쓰는 게 낫다는 생각이고, 데이터 모델 정리도 잘 돼 있어 파케이를 타조에서 지원하도록 고려중”이라고 말했다.