대용량 데이터를 분산 처리할 수 있는 자바기반의 오픈소스 프레임워크이다. 하나의 대형 컴퓨터를 사용하여 데이터를 처리 및 저장하는 대신, 하둡을 사용하면 상용 하드웨어를 함께 클러스터링하여 대량의 데이터 세트를 병렬로 분석할 수 있다. 이는 분산저장(HDFS)기술과 분 산 처리기술(MapReduce)이 탁월하며, 한 번에 여러 디스크로부터 데이터를 읽을 수 있다. 즉, 하둡은 DFS(Hadoop Distributed File System)라는 데이터 저장소와 맵리듀스(MapReduce)라는 분석 시스템을 통해 분산 프로그래밍을 수행하는 프레임워크 인 것이다.
2. 하둡의 장점
정형 데이터의 경우 기존의 관계형 데이터베이스(RDBMS)에 저장할 수 있지만 웹로그 같 은 비정형 데이터를 RDBMS에 저장하기에는 데이터 크기가 너무 커서 하둡이 주목받고 있다.
오픈소스 프로젝트이기 때문에 라이선스 비용에 대한 부담이 없습니다.
데이터 복제본을 저장하기 때문에 데이터의 유실이나 장애가 발생했을 때도 데이터 복구가 가능하다.
여러 대의 서버에 데이터를 저장하고 각 서버가 동시에 데이터를 처리하는 방식으로 처리속도가 빠르다.
3. 하둡에 대한 오해
하둡은 RDBMS를 대체하지 않고 RDBMS와 상호보완이다.
하둡은 무결성이 반드시 보장돼야 데이터를 처리하는데 적합하지 않다. 그 이유는 하둡은 배치성으로 데이터를 저장하거나 처리하는데 적합한 시스템이기 때문이다.
하둡으로도 실시간 처리가 가능하다. Scribe, Flume 같은 솔루션을 통해 데이터를 실시간으로 HDFS에 저장하고 Hbase를 이용해 HDFS에 저장된 데이터에 실시간으로 접근을 하면 된다.
하둡은 NoSQL이 아니다. 하둡은 데이터베이스 시스템의 역할을 수행하는 것이 아니다.
4. 하둡의 과제
하둡의 가장 큰 문제는 고가용성(HA, High Availability)이다. HDFS에 파일을 저장하고 조회한다. HDFS는 네임노드와 데이터노드로 구성되는데 네임도드가 HDFS에 저장하는 모든 데이터의 메타 정보를 관리한다. 네임도드에 장애가 발생하면 더는 HDFS에 저장 할 수 없고 데이터 유실의 경우 조회할 수 없다. 다행이 하둡2.0 버전부터는 HA를 지원한다.
네임노드가 관리하는 메타정보는 메모리로 관리되기 때문에 메모리의 용량에 따라 HDFS에 저장하는 파일과 디렉토리 개수가 제한을 받는다,
하둡은 한 번 저장한 파일은 더는 수정할 수 없다. HDFS에 파일을 저장하면 파일의 이동이나 이름 변경과 같은 작업은 가능하지만 저장된 파일의 내용은 수정할 수 없다. 하둡 2.1 버전부터는 파일에 내용을 덧붙알 수 있는 append 기능이 제공된다.
기존의 파일 시스템에서 사용하던 rm, mv 같은 POSIX 형식의 파일 명령어를 사용할 수 없다. 하둡에서 제공하는 별도의 셸 명령어와 API를 이용해 파일을 제어해야 한다.
오라클, MS-SQL, DBMS는 다양한 유지보수 업체가 있지만, 국내에는 하둡과 관련된 다양한 업체가 부족하다.
댓글 영역