Erlang을 보고 있자면 계속 Hadoop이 생각난다.
만일 Hadoop을 Java가 아닌 Erlang으로 구현했으면 상당히 깔끔하게 구현이 되었을 거란 느낌이 든다.
Hadoop에서 Job 스케줄링을 하는것과 Job 생성, 파괴 등등 아마도 Java에서 이런 기능들을 직접 구현했을 테지만, Erlang에서는 이런 멀티 프로세스 관리를 언어레벨에서 지원을 해주기 때문이다. 그것도 Hadoop의 특징인 fault tolerance를 충분히 지원하도록 말이다.
게다가 Hadoop 외부 API지원 코드인 streaming을 봐도 Erlang에서 외부 코드를 바이트 스트리밍하는 방법으로 C로 만들어진 바이너리를 채용할수 있는데 이 부분도 상당히 닮아 있다는 느낌을 받는다.
이유인즉슨, C 코드를 임베딩 해버리면 virtual machine이 그 코드 때문에 죽을 가능성이 많기 때문이다.
이런점들 때문에 어느 누군가가 Hadoop 같은 분산처리 시스템을 직접 만들고 싶다는 분이 계신다면 과감히 Erlang을 추천한다. 안전하고 정확한 분산처리 시스템을 가장 빠르게 만들 수 있는 언어이지 싶다.
Erlang과 Hadoop by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.