이 글은 “하둡 완벽 가이드” 책 내용을 정리한 글입니다.

저작권에 문제가 있는 경우 “gunjuko92@gmail.com”으로 연락주시면 감사하겠습니다.

Chapter1 하둡과의 만남

1.1 데이터!

  • 빅데이터를 저장하고 분석하는것은 매우 어려운일이다.

1.2 데이터 저장소와 분석

  • 하드 디스크 용량은 수년간 엄청나게 증가했지만 데이터를 읽는 속도는 그에 미치지 못한다.
  • 단일 디스크의 데이터를 읽는데 너무 많은 시간이 걸리고 심지어 쓰는것은 더 느리다. 시간을 줄이는 확실한 방법은 여러개의 디스크에서 동시에 데이터를 읽는것이다.
  • 여러 개의 디스크에 데이터를 병렬로 쓰거나 읽으려면 몇몇 문제를 고려해야 한다.
    • 하드웨어 장애 : 많은 하드웨어를 사용할수록 장애가 발생할 확률도 높아진다.
    • 분할된 데이터를 대부분의 분석작업에서 어떤 식으로든 결합해야 한다.
    • 맵리듀스는 디스크에서 데이터를 읽고 쓰는 문제를 키-값 쌍의 계산으로 변환한 추상화된 프로그래밍 모델을 제공한다.
  • 하둡은 안정적이고 확장성이 높은 저장 및 분석 플랫폼을 제공한다.

1.3 전체 데이터에 질의하기

  • 맵리듀스는 일괄 질의 처리기고, 전체 데이터셋을 대상으로 비정형 쿼리를 수행하고 합리적인 시간 내에 그 결과를 보여주는 능력을 지니고 있다.
  • 맵리듀스의 전제는 한 번의 쿼리로 전체나 상당한 규모의 데이터셋을 처리한다.

1.4 일괄 처리를 넘어서

  • 하둡 에코시스템은 분산 컴퓨팅과 대규모 데이터 처리를 위한 기반 시설이다.
  • HBase : HDFS를 기본 저장소로 하는 키-값 저장소다.
  • YARN : 클러스터 자원 관리 시스템으로, 맵리듀스뿐만 아니라 어떤 분산 프로그램도 하둡 클러스터에 저장된 데이터를 처리할 수 있게 해준다.
  • 하둡 기반에서 작동되는 다양한 처리패턴들이 생겨남
    • 대화형 SQL
    • 반복 처리 : 디스크에서 데이터를 불러오지 않고 메모리에 임시 작업 데이터셋을 보존 => 스파크
    • 스트림 처리 : 스톰, 스파크 스트리밍, 삼자와 같은 스트리밍 시스템
    • 검색 : 솔라는 하둡 클러스터에서 실행될 수 있다. 솔라는 문서를 색인하여 HDFD에 저장하고, HDFS에 저장된 색인을 기반으로 검색 쿼리를 제공
  • 맵리듀스는 배치 영역을 주로 담당한다.

1.5 다른 시스템과의 비교

관계형 데이터베이스와 비교

  • 맵리듀스는 비정형 분석과 같이 일괄 처리 방식으로 전체 데이터셋을 분석할 필요가 있는 문제에 적합하다. 반면에 RDBMS는 상대적으로 작은 양의 데이터를 낮은 지연 시간에 추출하고 변경하기 위해 데이터셋을 색인하기 때문에 특정 쿼리와 데이터 변경에 적합하다.
  • 하둡은 비정형 데이터나 반정형 데이터도 잘 처리할 수 있다. 읽기 시점 스키마라 불리는 이러한 특성은 유연성을 제공하고 데이터를 불러오는 비용이 많이 드는 단계도 피할 수 있다.
  • 맵리듀스는 일괄 처리 방식이며 트랜잭션은 지원되지 않는다.
  • 관계형 데이터베이스에 비해 하둡은 확장성이 매우 뛰어나다.

그리드 컴퓨팅

  • 하둡은 가능하면 계산 노드에 데이터를 함께 배치한다. 따라서 데이터가 로켈에 있기 때문에 접근도 빠르다. 데이터 지역성으로 알려진 이러한 특성이 바로 하둡에서 데이터 처리의 핵심이고, 좋은 성능을 내는 이유기도 하다.
  • 데이터센터의 환경에서 가장 중요한 자원은 네트워크 대역폭이다. 하둡은 네트워크 토폴로지를 명확하게 모델링하는 방법으로 네트워크 대역폭을 보존하기 위해 많은 노력을 기울였다.
  • 맵리듀스는 실패한 태스크를 자동으로 감지하여 장애가 없는 머신에 다시 배치하도록 구현되어 있기 때문에 개발자는 실패에 대해 크게 고민하지 않아도 된다. 이러한 일이 가능한 이유는 맵리듀스가 태크스 간의 상호 의존성이 없는 비공유 아키텍처이기 때문이다.