ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 하둡 완벽 가이드
    2017. 4. 2. comments

    빅 데이터(영어: big data)란 기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술이다.

      위키피디아


    몇년 전부터 빅데이터 키워드는 흔하게 사용되고 있다. 위 설명에서도 알겠지만 대량의 정형, 비정형 데이터로부터 분석을 할 수 있게하는 기술을 말한다. 사실 나는 데이터 처리에 대해서는 몇년 전부터 관심이 있었다. 가령 CPU 명령어 레벨부터 multi-core processing, GPGPU까지 관심을 넓혀나가고 있었지만 이런 기술들은 정보를 저장하고 분석하기 보다는 실시간으로 들어오는 데이터를 처리하기 위한 기술들이다. 의료계 활용 사례들에 대한 기사를 보면서 하둡에 대해서 알게 되었고 빅데이터 및 분산 처리에 대한 관심을 갖게 되었다.




    하둡 완벽 가이드 - 10점
    톰 화이트 지음, 임상배 외 옮김/한빛미디어


    우연히도 한빛출판네트워크의 "나는 리뷰어다" 이벤트에 당첨이 되었고, 하둡 완벽가이드 책을 받게 되었다. 딱 필요한 시점에 책을 받게 되어서 기뻤지만 900페이지에 가까운 두꺼운 책을 보는 것은 쉬운 일은 아닌거 같다. 여담이지만 몇번 이벤트를 신청했지만 당첨된 것은 이번이 처음인지라 이런 소소한 이유까지 더해져서 두꺼운 책을 더욱 열정적으로 읽은 책이기도 하다.


    이 책은 톰 화이트가 지었다. 톰 화이트는 하둡 커미터 역할과 프로젝트 관리 위원회 위원으로써 아마존의 EC2와 S3서비스에서도 제대로 동작하는 하둡을 만드는 전문적인 기술을 가진 사람이다. 우선 하둡을 만들어가고 있는 사람이 작성한 책으로써 가치가 있다. 알라딘이나 yes24등 온라인 서점에서 "하둡"이란 키워드를 검색하면 맨 처음 나올 정도로 인지도고 있는 책이기도 하다. 인지도나 저자면에서 책을 살만한 충분한 동기가 되지만 무지막지하게 비싼 가격은 큰 단점이다.


    이 책은 크게 5부로 구성되어 있으며, 1~3부는 하둡의 핵심을, 4부에서는 하둡 에코시스템, 5부는 하둡 사례연구를 다룬다. 하둡에 대한 기본 내용만 따진다면 3부까지 400페이지가 된다.


    "Part1 하둡 기초" 부분의 설명은 몇번이나 볼 정도로 괜찮다. 데이터 처리량이 증가되고 있는 현실부터 시작하여 단일 디스크의 한계점, 다른 시스템과의 비교(RDBMS, HPC) 비교, 맵 리듀스의 특징등을 잘 설명하고 있다.



    아래는 맵 리듀스에 대한 책 내용 중 일부이다. 저장된 전 세계 기온 정보를 가지고 연도별 최고 기온을 찾는 예제를 기반으로 쉘로 작성한 것과 맵 리듀스로 작성한 것을 비교하여 설명한다. 실제로 예제 코드를 보여주고 아래와 같이 논리적 데이터 흐름을 그림으로 정리해주기 때문에 기술을 이해하기 좋다.




    아래는 HDFS에 대한 파일 읽기와 쓰기에 대한 내용이다. 네임노드(메타데이터)와 데이터노드(데이터)가 어떻게 상호 작용하는지를 알기 좋게 그림으로 설명한다.




    전반적으로 많은 예제들과 그림들이 포함되어 있어 읽는데 어려움은 없지만 약간의 팁을 적는다면 Part I을 읽고 Part III 하둡 운영, Part II 맵 리듀스 순서로 보는게 좋다. Part I에서 기본적인 개념의 감을 잡고, Part III 를 활용하여 실습 환경을 꾸민 뒤, Part II 내용을 실습하길 바란다. 


    작년부터 머신러닝으로 인하여 인지도가 높아지고 있는 스파크에 대한 설명도 있다. 그외 하이브, 플룹등 다양한 관련 프로젝트에 대한 설명이 있으니 각각의 내용을 읽어보고 필요시 활용하면 좋을 듯 싶다.




    이러 사람이 읽으면 좋다.

    • 빅데이터에 관심이 있고 하둡을 고려하고 있는 사람


    이 책을 읽으려면, 아니 몰입을 하기 위해서는

    • CPU, 메모리, 디스크 I/O 등 컴퓨터 구조에 대한 기본 지식을 알고 있어야 한다.
    • 대부분의 예시는 자바로 작성되어 있다. 최소 객체 지향 언어에 대한 기본적인 이해가 필요하다.
    • 실습을 위해, 리눅스 배포판에서 패키지를 설치하고 설정할 수 잇어야 한다.
    • 실습을 위해, 분산 처리 구성을 해야 하니 네트워크에 대한 기본 지식을 가지고  있어야 한다.


    빅데이터 또한 예전부터 존재하고 있는 기술이지만 하둡을 통해서 손쉽게 사용할 수 있게 되지 않았을까 싶다. 그런면에서 하둡의 동작방식을 이해하고 학습하는 것은 꽤 의미있는 일이라고 생각한다.


    한빛미디어 "나는 리뷰어다" 이벤트에 당첨되어 책을 제공 받았음.

    반응형

    댓글

Designed by Tistory.