본문 바로가기

data engineering

하둡(Hadoop)의 개요 #1

 

하둡이란?

하둡(Hadoop)은 대용량 데이터를 분산처리 할 수 있는 자바 기반의 오픈소스 프레임워크이다. 

하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed File System)데이터를 저장하고 분산 처리 시스템인 맵리듀스(MapReduce)를 이용해 데이터를 처리한다. 

 

하둡은 분산처리 프레임워크 중 가장 대표적이고 유명한데, 이유는 오픈소스라 라이선스 비용이 없고, 서버 값밖에 비용이 안들기 때문에 저렴하면서 데이터를 여러 대의 서버에 저장하는 분산 파일시스템과 저장된 서버(HDFS)에서 동시에 데이터 처리까지 가능하기 때문이다.

 

2008년 뉴욕 타임즈는 130년 분량의 신문기사 1,100만 페이지를 아마존 EC2, S3, 하둡을 이용해 하루만에 PDF로 변환했다고 한다. 이때 들어간 비용은 200만원으로 이 변환 작업을 그 당시 일반 서버로 진행하면 대략 14년이 소요될 정도의 작업량이었다.

 

하둡은 장애도 대비 가능하다. 2.x버전 기준으로 하둡은 데이터가 저장될 때 기본 3 카피로 데이터 유실을 방지한다. A라는 데이터(편의상 데이터로 부르지만 실제로는 블록이다.)가 서버에 저장될때 기본으로 2개가 더 복제가 되어(복제 계수는 설정가능) 서버에 저장이 된다. 즉 A*3의 데이터가 저장이 되는 것이다. 만약 A1 A2 A3 데이터가 서버1 서버2 서버3 에 각각 하나씩 저장이 되어있다고 가정하자. 

서버1에 문제가 생겨서 A1 데이터가 유실이 되었다면 서버2, 서버3에 저장된 A2, A3 데이터를 사용하면 된다. 

*자세한 이야기는 나중에 다시 다룰 예정이다. 

 

하둡을 꼭 사용해야하나? 

RDBMS를 사용할 수 있다면 굳이 하둡을 사용할 필요가 없다. 

 

 

RDBMS와 하둡 둘다 목적과 상황에 따라 적재적소에 쓰면 된다. 그럼 하둡은 언제 사용할까?

하둡을 접할때 옆에 많이 붙는 단어가 있는데 그게 '빅데이터'하둡은 더그 커팅이라는 사람이 검색엔진을 만들다가 데이터를 저장하고 처리할 프레임워크가 필요해서 만든 것이다. 즉, 웹로그나 이미지 혹은 SNS 같이 비정형 데이터들 같이 버리기는 찝찝하고(언제 유용하게 쓰일지 모르니까) 그렇다고 RDBMS에 저장하기에는 데이터 형태의 질서도 거의 없고 데이터 크기도 크고 RDBMS에 저장하기 비용이 아깝고 또 많이 드는 그런 다양한 유형의 데이터들을 모아놓는 용도라고 보면 된다.이것을 Data Lake라고 볼 수 있는데 자세한 내용은 링크를 클릭해서 확인할수 있다. 이런 데이터들을 잘 처리하고 분석해서 뭔가 쓸만한 정보를 만들어내는걸 빅데이터라고 한다. 하둡은 빅데이터를 위한 도구라고 볼 수 있다. 


하둡은 만능키?하둡 하나만 있으면 내가 저장하고 싶은 데이터를 잔뜩 모아서 뭔가 어마한것을 할 수 있다고 생각할 수도 있지만... 대답은 NO!


하둡 하나만으로는 솔직히 할 수 있는게 거의 없다. 음... 하둡으로 엄청 큰 용량의 데이터도 저장할 수 있고 또 데이터 처리도 가능하다고 했지만... 저장된 여러 모양의 데이터들을 정리해서 내 입맛대로 바꾸고 원하는 걸 뽑아내기에는 하둡 하나만은 여러 한계가 존재한다.느리기도하고(엥? 빠르다며?) 한번에 많은 데이터를 저장해야하고(엥? 웹로그나 sns같은건 하나하나는 데이터가 작은데?) 게다가 하둡의 데이터 처리시스템인 맵리듀스는 간단한 기능 구현도 소스가 꽤나 길다! 
그럼 왜 아직 하둡이 있으며 2.x를 넘어 3.x버전도 나오는 것인가? 진작에 망해야하지 않나? 

왜냐하면 하둡은 에코시스템, 즉 생태계(Ecosystem)를 형성하고 있기 때문이다. 

 

(하둡은 코끼리... 코끼리는 코가 길다)
이런 생태계란 쫌 비슷한, 

 

이런 구성원인데, 실은 더 다양하게 많다.


점점 하둡 생태계가 커졌고 커지고 있다. 하둡 에코시스템은, 하둡을 실용적으로 잘 사용하기 위해 제공한 다양한 서브 프로젝트가 상용화 된 것이다. 하둡의 기능을 보완하고 효율적으로 적용하기 위해 만들진 하둡 에코시스템이지만 이제는 점점 하둡이 없어도 사용할 수 있는 프로젝트들이 되어가고 있다. 그러나 애초에 하둡과 함께 사용하기 위해 만들어진 시스템들이므로 하둡과 함께하면 좋은 성능을 보여준다.그래서 하둡은 아직까지도 그 이름이 건재(?)한 것이다. 
값싸고, 원하는 만큼 크기도 늘릴 수 있고, 도와주는 친구들도 많은 하둡을 다음 포스팅에서는 좀 더 자세하게 다뤄볼 것이다.