티스토리 뷰

반응형

1. 하둡과의 만남

1) 데이터

  • 현재 빅데이터가 주변에 널려있긴 하지만, 그것을 저장하고 분석하는 일은 보통 매우 어렵다.
  • 왜? 하드디스크의 용량은 기본 1TB 까지 저장가능할 정도로 커졌지만 데이터를 읽는 속도는 아직 많이 느리기 때문.
    • seagate st-41600n HDD 사양으로, 1TB 짜리 HDD에 있는 데이터를 모두 읽는데 두시간 반이상이 걸린다. (100MB/s -> 1000000MB/1만초)
    • 어떻게 개선할 수 있을까?
      • 100대의 디스크에 10000MB 씩만 분산 저장한다면 2분안에 1TB 의 데이터를 읽을 수 있다. 
    • 이렇게 1TB 의 데이터를 100대로 분산저장했을때 무슨 문제가 생길 수 있을까? 
      • 하드웨어 장애. 많은 하드웨어를 사용할수록 장애가 발생활 확률도 높다. -> 데이터 복제로 해결가능
      • 분할된 데이터를 분석하기위해 결합해야한다. 이때 정합성을 지키는건 매우 어렵다 -> 맵리듀스로 해결가능.

결론 : 하둡은 안정적이고 확장성이 높은 저장 및 분석 플랫폼을 제공한다. 위 두가지 문제를 모두 해결 할 수 있다.

 

2) 데이터 질의

하둡의 데이터 질의는 맵리듀스를 이용한다.

맵리듀스는 디스크에서 데이터를 읽고 쓰는 문제를 키-값 쌍의 계산으로 변환한 추상화된 프로그래밍 모델을 제공한다.

전체 데이터셋을 대상으로 비정형(ad hoc) 쿼리를 수행하고 합리적인 시간내에 그 결과를 보여주는 능력을 가지고 있다.

수백 기가바이트의 데이터를 한 곳으로 모으고 이를 분석하는 도구이다.

 

맵리듀스는 일괄처리 시스템이다.

즉, 질의를 실행한 후 처리하는데 1분이상은 걸린다는 것이고 이는 대화형 분석에는 적합하지 않다. 처리 결과를 계속 기다린다는 것은 어려운 일이므로 맵리듀스는 오프라인 용도로 적합하다.

 

그렇다면 하둡은 계속 일괄처리로 작업을 진행할까? 

음... 맞기도 하고 틀리기도 하다. 하둡은 수많은 에코시스템 프로젝트를 지칭하는 말로 사용되기도 하기때문이다.

하둡위에서 제공되는 HBase 저장소를 이용하면 랜덤읽기가 가능하다.

 

HBase

HDFS를 기본 저장소로 하는 키-값 저장소

하둡 에코시스템의 구성요소중 하나이다.

개별행에 대한 온라인 읽기/쓰기와, 산적한 데이터를 읽고 쓰는 일괄처리를 지원하기 때문에 애플리케이션을 구축하는 데 좋은 솔루션이 될 수 있다.

 

YARN (Yet Another Resource Negotiator)

하둡 2에서 포함된 클러스터 자원관리 시스템이다.

맵리듀스 뿐만 아니라 어떤 분산 프로그램도 하둡 클러스터에 저장된 데이터를 처리할 수 있게 해준다. 

 

Ad-Hoc 쿼리란?

별칭 동적쿼리.

 

밑의 예제 쿼리처럼  미리 정의된 쿼리가아닌 myId가 늘 변하게되는 변수로 작용하게 되는 즉석에서 쓰는 쿼리이다.

var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;

 

(맵리듀스는 위와 같은 비정형방식으로 데이터를 처리할 때 사용하기 적합하다.)

 

3) 왜 하둡인가?

여러개의 디스크를 가진 데이터베이스 vs 하둡  => 하둡이 좋다. 왜??

1. 탐색속도(디스크의 헤더가 움직여서 데이터를 찾는 속도) 의 발전은 전송속도(디스크 대역폭) 보다 느리다. 

2. 데이터베이스는 데이터 입력시, B-tree 자료구조를 사용하기 때문에 Sort/Merge 를 사용한다.  맵리듀스보다 효율이 낮다.

 

4) 그리드 컴퓨팅

  • 데이터 지역성
    • 하둡 데이터 처리의 핵심
    • 하둡은 가능한 계산노드에 데이터를 함께 배치한다. 따라서 데이터가 로컬에 있기 때문에 접근도 빠를 수 밖에 없다.
    • 네트워크 대역폭 한계에 영향을 받는 하둡에서 데이터를 이리저리 복사해보면 쉽게 네트워크 링크를 포화상태로 만들 수 있다. 하둡은 네트워크 토폴로지를 명확하게 모델링하는 방법으로 네트워크 대역폭을 보존하기 위해 많은 노력을 기울였다. 네트워크를 고려한 이러한 배치 방식은 하둡에서 CPU를 많이 사용하는 분석에 지장을 주는 것은 아니다.
  • 장애대응
    • 하둡의 맵리듀스는 태스크간의 의존성이 없는 비공유 아키텍쳐 이기 때문에 잡 실패에 대해 고민하지 않아도 된다. ( 이럴때 비공유 아키텍쳐란 말을 쓰는게 맞는건가? 다수의 장비에 부하를 분산하는 아키텍처가 비공유 아키텍처라고 무슨 책에서 그랬는데... 같은 뜻인건가... )
    • 리듀서 잡이 실패하면 리듀서가 필수적으로 실행됐어야 할 맵 작업을 재실행시켜 준다.  

 

반응형

'데이터 엔지니어 > Hadoop' 카테고리의 다른 글

[하둡 완벽 가이드] 하둡기초 2  (0) 2020.06.04
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함