본문 바로가기
기타 도서 리뷰/시작하세요 하둡 프로그래밍

시작하세요 하둡 프로그래밍 9장 하둡 운영

by java개발자 2016. 12. 8.

하둡을 공부하면서 생각이 점점 무거워진다.

하둡을 공부하는 것이 맞을까?


더군다나 노트북 1대에 virtualbox로 가상 centos를 6대나 설치해놓고, 테스트 하는 것이 과연 합리적인가?

1T 또는 100T 정도의 데이터를 분석해야 하는데, 정작 10G를 테스트하면서도 버벅대고 있다.


8장까지 오면서,

하둡에서 제공하는 기능이

그리 특별하지 않다는 사실을 깨닫게 된다.


오히려 Spark나 R처럼 또는 RDBMS처럼 화려한 기능이 없다.

1 hdfs에 파일을 분산해서 저장하고

2 맵리듀스 기능을 제공한다.(Java8이나 Spark RDD에서는 굉장히 쉽게 구현 가능하다.)

3 정렬기능

4 조인기능을 제공하는 정도이다.

(3,4번도 결국은 Hive의 SQL로 대체할 수 있다.)

그 외는 대부분 환경세팅, 에코 시스템에 대한 부분이다.

아키텍처에 대한 구조나 관점을 배우는데 유용할 수 있지만, 하둡으로 모든 것을 하려고 했던 욕심은 버려야 할 것 같다.

정말 딱! ETL에만 사용해야 할듯.


저자의 말처럼

14년이 소요될 일을 하루만에 작업해야 하는 분량의 일에서나 하둡이 필요할지 모르겠다. (29p)


구글처럼 상상을 초월하는 데이터 서버를 가진 기업에서나 필요할지 모르겠다.


일반 기업이, 일반 개발자가 하둡을 공부해서 어디에 사용할 수 있을지 의문이다.


--

9장에서 요구하는 하드웨어 스펙은

마스터서버(네임노드,잡트래커, 보조네임노트) : 디스크2~4개, 디스크 미러링, 메모리 최소 32G~128G, CPU 코어 16~24개

슬레이브서버(데이터노드, 태스트트래커) : 4~12개 디스크(1T~3TB), CPU 코어 4개, 메모리 24G~48G


일반 중소기업에서 과현 구현할 수 있는 수준일까?


-----------

하둡의 아키텍처는 다른 것들과 비슷하다.

Akka

Spark

Mosquitto

RabbitMQ

Redis

ELK Stack

등등


결국, 각자 하고 싶은 일을 하면서

접근 방법을 RESTFul API나 java, python API로 제공하고

네트워크 클러스터를 제공하고,

in memory 제품이라면 가끔씩 disk에 백업하는 기능도 제공하고,

또는 데이터 복제/샤딩을 제공한다.

그리고 WEB에서 확인해 볼 수 있게 WEB MANAGER도 제공한다.

배치 script를 지원하고,

MQTT처럼 네트워크 통신이 주를 이루는 곳에서는 QoS level 도 중요핟.


>> "이것이 레디스다" 라는 책을 보면 거의 비슷하게 진행되는 것을 볼 수 있다.


다들 비슷비슷 하다.

결국 하늘아래 새것은 없다.



----------------------------------

페이스북, 구글, 야후에서 하둡 개발 공헌을 많이 한다. 그들은 필요해서 hadoop을 사용하고, 개발한다.

그런데 우리는 과연 하둡이 필요한가?


Spring MVC로 만들어진 기업의 소스를 보면

다들 습관적으로 Service, DAO interface를 작성한다. 

어차피 1:1 관계라면 interface가 필요없지만

우리나라 사람들은 왜 필요한지도 모르고 interface를 작성하며 개발시간을 낭비한다.


하둡이 마치 Spring같다.