Hadoop

하둡이란?

견오수 2021. 8. 25. 14:12
728x90

1. 하둡이란?

 

대용량 데이터를 분산 처리할 수 있는 자바기반의 오픈소스 프레임워크이다. 하나의 대형 컴퓨터를 사용하여 데이터를 처리 및 저장하는 대신, 하둡을 사용하면 상용 하드웨어를 함께 클러스터링하여 대량의 데이터 세트를 병렬로 분석할 수 있다. 이는 분산저장(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는 다양한 유지보수 업체가 있지만, 국내에는 하둡과 관련된 다양한 업체가 부족하다.

 

 

하둡 에코시스템

 

 

 

 

참조 : 시작하세요! 하둡프로그래밍

 

 

 

 

 

 

 

 

728x90