하둡 왜 사용하는가?

이윤재·2020년 6월 3일
0

하둡

목록 보기
1/2

하둡 완벽가이드 책을 기반으로 이해한 것을 정리한 내역입니다.

등장배경

기술의 발전으로 데이터의 양과 하드 디스크 용량은 발전했지만, 데이터를 읽는 속도에 이에 미치지 못했다. 이를 개선할 수 있는 방법을 생각했을 때 병렬처리이다. 병렬처리는 큰 데이터 한 개를 100개로 쪼개고 100개의 디스크에서 작업을 하게 하는 것이다. 이를 문제없이 할 수 있도록 지원해주는 것이 필요했고 이에 맞춰 등장한 것이 하둡이다.
어떤 문제가 있고 하둡은 어떻게 해결했을까?
첫 번째 이슈는, 디스크 1개 였던 거를 100개로 나눠서 한다는 것은 1개 디스크 관리하던 것을 100개를 관리해야한다는 것이다. 즉 하드웨어 장애 이슈이다. 하둡은 HDFS라는 고유의 파일 시스템을 이용해서 replica를 생성해 이 장애에 대한 대응을 한다.
두 번째 이슈는, 어쨌든 최종 결과를 내기 위해서는 어떤 식으로든 결합을 해야한다는 것이다. 하둡은 이를 정확하고 빠른 계산을 위해 key-value의 형태로 계산하는 mapreduce를 제공함.
이러한 이슈와 해결로 하둡은 대용량 데이터를 안전하게 병렬처리를 할 수 있도록 지원해 준다.

하둡의 장점

그럼 좀 더 디테일한 하둡의 장점이 무엇일까?
일단 장점은 일괄처리이다. MR 작업의 전제인 한 번의 쿼리로 전체나 상당한 규모의 데이터셋을 처리하는 것이다. 이는, 데이터를 통한 혁신의 기회를 주었다.
그럼 하둡은 최초의 목적대로 일괄처리만 하느냐? 그건 아니다. 이를 벗어나서 더욱 발전하여 에코시스템을 만들었고, 각 에코 시스템은 대화형 SQL, 반복처리, 스트림 처리 등을 할 수 있도록 도움을 주었다. yarn을 통해서는 mr 뿐만 아니라 다른 분산 프로그램도 하둡 클러스터에 가능하게 만들어줌.
다른 시스템과 비교해서 하둡의 장점을 더욱 말해본다면

  • 관계형 데이터 베이스
    관계형 데이터 베이스와 달리 탐색을 최소화하게 만들어, 탐색 속도가 전송 속도보다 짧게 만들었다.(어떻게 만든지는 책 참고!) 이를 통해 한 번 읽기 등을 가능하게 만들었다.
  • 그리드 컴퓨팅
    그리드 컴퓨팅은 계산노드에 데이터 전송할 때 데이터가 몰려 병목현상이 일어날 수 있다. 하둡은 이를 극복하기 위해서, 데이터 지역성, 즉 계산 노드에 데이터를 저장해 병목현상을 해결했다.
    또한, 수많은 프로세스 관리를 리듀스 위주 관리와 비공유 아키덱처 기반으로 해결!
    리듀스는 매퍼의 결과가 인풋으로 사용되기 때문에 완전 독립적이라 할 수 없지만, 각각 맵리듀스를 독립적으로 운영함으로써 리듀스를 관리하게 되면 인풋에 대한 매퍼도 관리가 가능하다. 이런 식으로 하둡은 프로세스 관리를 하고 있다.
profile
시작단계

1개의 댓글

comment-user-thumbnail
2020년 6월 4일

하둡 구성 후 파일을 sort해보는 시간으로 성능비교를 하는 케이스도 있다고 하내요~

답글 달기