* 책의 구성
하둡의 개념과 방대한 API에 대해서 여러 챕터로 나누어서 설명을 하고 있습니다. 각 챕터는 짤막하며 이론설명과 이를 구현하기 위한 API의 사용방법과 관련해 핵심구성요소에 대한 이해를 돕기 위해 예제를 포함해 설명하고 있습니다. 하둡 API의 활용방법을 마치 소설처럼 말로 풀어서 설명을 하고 있는 점이 참 독특했습니다. 또한 모든 외래어에 대해 윗첨자로 영문단어의 표기를 해서 각 단어의 의미를 정확히 파악할 수 있도록 구성을 한 점이 정말 인상적이었습니다. 한국어로만 표기하면 혼동의 여지가 많은데 영어단어로 옆에 표기가 되어 있어서 정확하게 이해할 수 있었습니다.
번역체의 단점이라고 해야 할까요, 필체가 너무 번역스러운 점이 좀 아쉬웠습니다. 저자가 우리나라사람이 쓴 책이 아닌만큼 그 점은 감안해야 할 것 같습니다.
번역본이 아닌 원서의 단점이라고 할까요, 소스코드의 실행과정이 너무 함축적인 점이 아쉬웠습니다. 실제 활용을 위해서는 상당한 연습이 필요할 것 같습니다. 그리고 모든 예제는 리눅스 명령행에서의 파이프 처리, 자바, 루비, 파이썬, C++으로의 예제 설명이 되어 있습니다. 오픈소스답게 모든실행과정이 리눅스인점이 윈도우 유저인 점에서는 정말 아쉬웠습니다. 즉, 책에 제시된 예제들의 실행방법은 리눅스 기준으로 기술되어 있고, 또한 리눅스에서만 완전하게 실행이 가능합니다. 윈도우즈 사용자들이 만약 윈도우에서 하둡의 API를 실행하고자 한다면, CgyWin의 설치와 함께 별도의 환경설정을 반드시 해주어야만 합니다. 이때 CgyWin등의 설치방법도 개별적으로 찾아야 합니다. 모든게 리눅스 환경에서 테스트 되었고, 이래서 오픈소스의 진정한 가치를 알고 싶으면 리눅스 기반에서 테스트하라는 말을 만들고 싶어졌습니다.
* 책의 내용
지금까지 고성능의 서버라면 처리속도도 당연히 빠르므로 한대의 서버만으로도 대용량의 데이터 처리를 할 수 있을것이라 생각했었습니다. 그러나 데이터가 수천만개에서 수십억개까지 증가한다면, 정말 RDBMS의 성능에만 의존할 수 있을까? 라는 의문이 들기 시작했습니다. 하둡의 개념은 거대한 데이터를 일정한 크기로 분할해 N개로 나누고 여러 컴퓨터에서 이들을 병렬로 처리한 다음 그 결과를 취합해서 사용자에게 제공하고자 하는 것입니다. 멀티쓰레딩에도 익숙치 않던 제게 멀티프로세싱도 아닌 엄청난 개수의 컴퓨터들 사이에서 데이터를 나누어 처리한다는 병렬처리방식은 지금까지의 고정관념을 완전히 바꾸어 놓고 있었습니다.
평소 검색엔진 분야에 관심이 있던 저로서는 익숙한 명칭등을 접할 수 있었고 지금까지의 저장장치와 탐색기법의 변천사에 대해서도 알 수 있었습니다. 루씬, 너치, 하둡, 그리고 야후에서 하둡을 채택해 검색사이트를 구성한 배경까지도. 지역적으로 데이터를 분산시키고 이를 처리하는 방법이라든가 탐색을 위해 데이터를 병렬처리하는 방법에 대해서 항상 궁금했습니다. 하둡의 배경지식을 통해 일괄적인 직렬처리과정이 아닌 병렬처리과정을 배울 수 있었습니다.
책 전반에 걸쳐서 분산컴퓨팅에 관련한 이론설명이 강조되어 있습니다. 이 분야에 관심이 있어서 배경지식이 있는 독자가 아니라면 네트워크 및 데이터통신과 관련된 어느정도의 지식을 알고 있어야 책의 내용을 이해하기가 쉬울 듯 합니다(어려운 용어 예시-네트워크 토폴로지).
간혹 안드로이드 OS가 단말기의 성능을 100% 활용하지는 못한다는 말을 들은 적이 있습니다. 화려한 GUI로 사용자에게 편의성을 제공하는 것 뿐만 아니라 하드웨어를 제어하고 그 성능을 활용하는 것 또한 소프트웨어의 역할이기도 합니다. 이러한 사실에 대해 하둡은 어떤 강력한 하드웨어라도 충분히 활용할 수 있다는 것을 증명하고 있습니다.
기타
1쇄이어서 그런지 오자, 탈자가 많이 있습니다. 2쇄에서는 말끔하게 정리될 듯 합니다.