udemy Hadoop - Hadoop이란?

Michael Kim·2022년 5월 11일
0

1. 왜 hadoop을 공부하게 되었는가?

일단 큰 관심을 갖게 된 계기는 대부분 채용 우대 기술에 hadoop이 포함되어 있기 때문이다. Nota 인턴 전까지는 hadoop 이름만 들어봤을 뿐, 어떤 기술인지 알지는 못했다.

Nota 인턴을 하면서 Elasticsearch 검색 기술 도입을 위해 ELK stack vs Hadoop Ecosystem을 비교한 적이 있다.

  • ELK stack은 Logstash(Firebeat)를 이용하여 데이터를 수집한다. 그리고 Elasticsearch는 분산 저장 기능을 제공하고 데이터를 역인덱싱 형태로 담아, 뛰어난 검색 엔진을 제공한다. 마지막으로 Kibana에서는 데이터 시각화와 분석 기능을 제공한다. 주로 Logstash 보다는 성능 좋고 다양한 툴과 호환이 가능한 Fluentd를 써서 EFK Stack이라고도 한다. (Kibana도 Tableau로 대체 가능하다!)
  • Hadoop Ecosystem을 설명하기 전에 Hadoop은 File System 형식의 데이터 분산 저장 엔진이라고 설명할 수 있다. Hadoop의 분산 저장 원리를 설명하자면, HDFS가 분산 저장하는 역할을 하고, MapReduce가 HDFS의 데이터 유입을 관리한다. 더 하자면 YARN도 있는데 분산 클러스터의 리소스를 관리하는 역할을 한다.
  • Hadoop Ecosystem이란 하둡 코어 프로젝트 HDFS, MapReduce 위에서 동작하는 서브 프로젝트들을 뜻한다. 데이터 수집에는 Flume, Scribe, 분석에는 Hive, 분산 데이터베이스로는 HBase 등이 있다.
  • ELK stack vs Hadoop Ecosystem: ELK Stack에서 Elasticsearch는 뛰어난 검색 기능과 다양한 검색 쿼리를 가졌다는 점에서 우수하고, 그에 비해 Hadoop Ecosystem의 HBase는 관계형 DB면서 대용량 데이터 저장에 특화되어 있는 것으로 알고 있다.

이렇게 비교해본 경험은 있었지만, 역시 써봐야 더 많은 것이 보일 것이라 생각한다. Elasticsearch는 써보았고, 어차피 Hadoop 기술도 채용 면에서 많이 우대해주니 공부해도 괜찮겠다는 생각을 했다. 왜 Hadoop이 데이터 업계에서 표준이 되었을까?

본 내용은 udemy 강의에서 보고 배우는 내용을 기술한다.


2. Hadoop이란?

Q. What is Hadoop?
A. "An open source software platform for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware"

  • 일단 hadoop은 오픈 소스(무료)이며, 여러 컴퓨터 하드웨어 위에서 빅데이터를 위한 분산 저장 및 프로세싱 기능을 제공하는 소프트웨어 플랫폼이다.

분산 저장: 데이터를 여러 컴퓨터 하드웨어에 저장하기 때문에 컴퓨터 한 대가 고장이 나도 데이터를 다시 회복시킬 수 있다.

분산 프로세싱: 분산 프로세싱을 통해 데이터를 찾을 때도 여러 컴퓨팅 리소스를 사용하기 때문에, 한 대의 컴퓨팅 리소스를 사용하는 것보다 훨씬 더 빠르게 데이터를 찾을 수 있다.

컴퓨터 클러스터: 위의 분산 저장 및 프로세싱을 가능하게 하는 것은 여러 대의 컴퓨터를 사용하기 때문이다. 또한, 클러스터는 수평적 확장이 가능하기 때문에, 추가적으로 저장 공간이나 프로세싱 성능이 필요하다면, 컴퓨터를 늘려 확장하는 것이 가능하다. (수평적 확장의 반대로는 수직적 확장으로, 컴퓨터의 성능을 업그레이드하는 방식으로 리소스를 확보하는 것을 의미한다.)


3. Hadoop의 역사

Hadoop은 구글에서 발표한 GFS+MapReduce에 대한 데이터 분산 저장 논문에서 영향을 받아, 2006년 Doug Cutting과 Tom White에 의해 만들어졌다. 이름은 Doug Cutting의 아들이 가지고 놀던 코끼리 장난감 이름인 Hadoop에서 유래됐다고 한다...


4. 왜 Hadoop인가?

점점 데이터가 중요해지고, 양이 많아짐에 따라 데이터 저장 및 처리 플랫폼이 필요하게 되었다.

컴퓨터의 수직적 확장은 그리 효율적인 방식이 아니다. 높은 성능의 cpu를 가지고 있다 하더라도, 다량의 cpu를 사용하는 것보다 처리 속도가 나아지지 않았고, 컴퓨터 하드웨어 문제로 인해 크리티컬한 데미지를 받을 수 밖에 없었다. Hadoop은 수평적 확장이 가능하기 때문에, 데이터 분산 저장 및 프로세싱 성능의 보다 효율적인 향상이 가능하다.

기존의 Hadoop은 배치 단위의 프로세싱을 지원하였지만, 다양한 Ecosystem이 생겨나면서 매우 빠르게 대화형으로 프로세싱을 지원할 수 있게 되었다.


5. Hadoop Ecosystem

  1. HDFS
    HDFS는 Hadoop 버전의 GFS로, File System 형태의 분산 저장 시스템이다. 백업을 통해 데이터 손실을 복구할 수 있다.

  2. YARN
    컴퓨터 클러스터의 리소스를 관리하는 시스템이다.

  3. MapReduce
    MapReduce는 Mapper와 Reducer로 나뉜다.
    Mapper는 클러스터에 분산되어 있는 데이터를 효율적으로 동시에 변형시킬 수 있다. 그리고 Reducer는 그 데이터를 집계하는 역할을 한다.

  4. Hive
    Hive API를 이용하면 Hadoop이 RDBMS가 아님에도 불구하고, SQL을 이용하여 데이터를 쿼리할 수 있도록한다.

  5. Apache Ambari
    Hadoop의 모든 어플리케이션의 상태를 볼 수 있게 하며, Hive에서 쿼리를 실행하거나 데이터베이스를 불러올 수 있는 화면을 제공한다.

  6. Mesos
    YARN과 같이 클러스터 리소스를 관리한다.

  7. Spark
    SQL, 스트리밍, 머신러닝 및 그래프 처리를 위한 모듈을 제공하는 빅데이터 처리용 통합 분석 엔진이다.

  8. HBase
    클러스터의 데이터를 트랜잭션 플랫폼으로 노출하는 역할을 하며 NoSQL 데이터베이스라고도 불린다. 단위 시간당 실행되는 트랜잭션의 수가 큰 아주 빠른 데이터베이스다.

  9. OOZIE
    클러스터의 작업을 스케쥴링합니다.

  10. Zookeeper
    노드의 일관성 있고 안정적인 성능을 위해 클러스터의 상태를 관리합니다.

profile
정리하고 복습하고 일기도 쓰고

0개의 댓글