August 10, 2013

하둡의 생태계, 오픈소스는 자연을 닮았다.

내가 처음 Hadoop 프로젝트에 기웃거리게 된 것은 2000년 초중반, 웹 검색엔진 전쟁의 시대였다. 검색엔진 프로젝트를 하면서 즐겨찾던 Lucene/Nutch 프로젝트의 하위 프로젝트로 탄생할 때 부터였지. 그래서 거의 시작부터 봤다고 해도 과언이 아니겠다.

당시 검색의 일인자(?) 구글의 DFS와 BigTable 논문이 나왔을 무렵일까.. 오픈소스진영에서는 구글의 분산처리 기술 논의가 활발했었는데, 다들 입씨름 하느라 바쁠때 아무 말없이 스켈레톤 코드를 구현해서 올린 이가 있으니 그 이름은 Mike J. Cafarella.

Hadoop HDFS/MapReduce 1.0, 그리고 HBase의 0.20 이전까지의 코드는 사실 Mike의 구현을 기반으로 진행되어온 것이다. 물론 Hadoop이라는 네이밍은 더그 커팅이 했겠지만 .. 그래서 웃기게도 Hadoop 창시자는 더그 커팅이다.

당시의 분위기를 바탕으로 짐작컨대, 대형 웹서비스 또는 검색엔진 회사에서 재직하던 엔지니어들은 이미 그 프로젝트의 비전을 보고 있었다. 전산학도가 아닌 내가 hadoop.co.kr을 확보하고 기웃거린것만 봐도 그렇지. 그 때문에 하둡 기반의 다양한 아이디어들이 쏟아졌고 다양한 그룹이 중복된 프로젝트를 개설하면서 패거리 간 힘겨루기 모드가 시작된다.. ㄷㄷ;

Y!에서 Pig가 나오자 Facebook에서 Hive를 내놓고, 내가 기계학습과 과학연산을 위한 행렬 연산 패키지를 제안하자 Lucene 커뮤니티의 유럽 개발자들 사이에서 Mahout프로젝트를 만들었다. 뭐 그런식으로 몇 년간 진행된건데, 요즘도 별반 다른건 없다. Impala가 나오면, Tez가 나오고, MRQL이 나온다. 내가 Hama를 BSP기반으로 변경하고 진행하는 와중에 Y!는 또 Giraph를 만들어 출시했다.

처음엔 좀 더러운 놈들이라고 욕도 많이 해봤고 GNU로 갈아탈 생각도 많이 했다. 왜냐하면 우리는 흔히 오픈소스 하면 공유와 협력을 떠올리는데 실상이 그렇지 않았기 때문이다. 누구나 오리지널러티를 인정받고 싶어하는거다.

그런데, "순서가 틀렸지 얘야~". 오픈소스라 개발자들이 협력하는게 아니고, 강자가 살아남고 약자들은 살아남기 위해 협력을 하는거였다. 냉혹한 자연과 매우 비슷하다. 그러기에 매섭게 진화한다.

요즘 볼게 너무 많고 프로젝트도 너무 많다는 사람들이 간혹 있다. 몇년 후면 정리될 거라 말하는 이도 있다. 내 생각엔 계속 그러할거다. 자연스럽게 그냥 계속 흘러간다.

이를 지켜만 보고 있으면 끝까지 보고만 있게 될 것이고, 협력을 하지 않는다면 먹히거나 조용히 사라져 갈 것이다.

No comments:

Post a Comment