freakyfrog98
code.log
freakyfrog98
전체 방문자
오늘
어제
  • 분류 전체보기 (17)
    • TIL (7)
    • 시스템프로그래밍 (3)
    • 알고리즘 코드블럭 (2)
    • Udemy-Docker-Kuberne.. (3)
    • Udemy-Hadoop (1)
    • Cloud (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Profile.

인기 글

태그

  • ARG
  • BFS
  • bindmount
  • Bucket
  • CloudStorage
  • cp명령어
  • cs
  • defaultdict
  • deque
  • Dijkstra

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
freakyfrog98

code.log

what is Hadoop
Udemy-Hadoop

what is Hadoop

2023. 1. 25. 20:47

Hadoop

  • 방대한 양의 데이터를 클러스터내의 하드 드라이브 들에 분산시킨다.
  • 또한 이 분산된 모든 데이터들을 단일 파일 시스템으로 보여준다.
  • 또한 데이터의 여분 또한 제공
    • 혹여 클러스터 내 한 노드가 불이나서 데이터의 손실이 생겼다.
    • 데이터의 백업 복사본을 클러스터의 다른 컴퓨터에도 보관하기 때문에 이런 상황에 있어 자동으로 소실된 데이터를 복구한다.
  • 저장뿐 아니라 데이터를 처리할 때도 클러스터의 컴퓨터들을 함께 이용해 병렬 처리 한다.
    • 클러스터 내 모든 컴퓨터 cpu에게 작업을 분배하여 동시 처리하게 한다.

Why Hadoop?

  • 현대 사회가 다루는 데이터는 너무나도 커졌다.
    • 하나의 컴퓨터는 충분하지 않다. 한 대의 성능을 수직적으로 확장하는것의 한계
  • 그리고 그 방대한 데이터 안에서 원하는 데이터를 탐색하는 시간이 너무 커졌다.
  • 재난에 robust 하다
  • 여러 CPU로 병렬처리 하기 때문에 속도도 빠르다.
  • 하둡은 수평적 확장이다.

하둡 생태계에는 어떤 요소들이 있나? - (1)Ecosystem

  • HDFS
    • hadoop itself
    • 하둡 분산 파일 시스템
      • 실질적인 데이터 저장소
      • 빅데이터를 클러스터의 컴퓨터들에 분산 저장하는 시스템이다.
      • 또한 재난 대처 또한 담당
  • YARN(Yet Another Resource Negotiator)
    • 또 다른 리소스 교섭자
    • HDFS 가 데이터 저장에 대한 부분이면, YARN은 데이터 처리 부분을 담당
      • 클러스터의 리소스를 관리하는 시스템
    • 누가 작업을 언제 실행하고 어떤 노드가 추가 작업을 담당할 지 결정
  • MapReduce
    • 데이터를 클러스터 전체에 걸쳐 처리하도록 하는 프로그래밍 메타포 혹은 모델
    • mapper와 reducer라는 두 개의 구분된 스크립트 혹은 함수로 구성됨
    • Mapper
      • 클러스터에 분산된 데이터들을 효율적으로 동시에 변형시킬 수 있다.
    • Reducer
      • 그 데이터들을 aggregate 한다.
  • Pig
    • 자바나 파이썬으로 mapreduce 코딩을 하는 것 보다 sql스타일의 언어에 익숙하다면 사용 권장
    • high level의 API
    • 작성된 Pig 스크립트를 MapReduce가 읽을 수 있도록 로우레벨로 번역하고 MapReducerk YARN과 HDFS에게 데이터를 처리하고 원하는 답을 가져오게 한다.
  • Hive
    • Pig 와 유사, SQL에 조금 더 가깝다.
    • 실제 SQL 쿼리를 받고 파일 시스템에 분산된 데이터를 SQL 데이터베이스처럼 취급한다.
      • 클러스터에 저장된 데이터가 내부적으로는 관계형 데이터베이스가 아님에도 불구하고 SQL로 쿼리한다.
  • Ambari
    • 클러스터 전체를 보여주는 최상위 툴, 리소스 운영 상태 등을 시각화, Hive나 Pig 쿼리를 실행하거나 데이터베이스를 불러올 수 있는 화면이 있다.
  • Mesos
    • YARN의 대안 정도?
    • 같은 문제를 YARN과 다른 방식으로 해결한다.
    • Spark와 연결된다.
  • Spark
    • MapReduce와 동일 선상
    • Yarn 혹은 Mesos 둘 중 어느쪽을 기반으로 하든 데이터에 쿼리를 실행할 수 있다.
  • TEZ
    • Spark와 동일 선상
    • DAG 를 사용하여 MapReduce의 일을 할 때 더 유리해진다.
    • 보통 Hive와 같이 사용되어 성능을 가속한다.
  • HBASE
    • 클러스터의 데이터를 트랜잭션 플랫폼으로 노출하는 역할을 하며 NoSQL 데이터베이스라고 불린다.
    • 기둥형 데이터 스토어
    • 단위 시간당 실행되는 트랜잭션의 수가 큰 아주 빠른 데이터베이스이다.
      • 따라서 데이터를 웹 애플리케이션이나 웹사이트에 노출시켜 Online Transaction Processing을 하는데 적합하다.
    • Spark나 MapReduce 등에 의해 변화가 생겼을 수도 있을 클러스터에 저장된 데이터를 후에 다른 시스템에 노출시킬 빠른 방법을 제공한다.
  • STORM
    • 스트리밍 데이터를 실시간으로 처리하는 방식
    • 데이터가 실시간으로 입력됨에 따라 실시간으로 기계학습을 업데이트 하거나 데이터를 데이터베이스에 저장할 수 있다.
  • OOZIE
    • 클러스터의 작업을 스케쥴링 한다
    • 예를 들어 데이터를 Hive에 불러와 Pig를 통해 통합하고, Spark를 통해 쿼리한 후에 결과를 HBASE로 변환시킨다 하면 OOZIE가 이 모든것을 관리해 안정적이고 일관성 있게 실행할 수 있다.
  • Zookeeper
    • coordinating cluster
    • 이 기술을 사용해 어떤 노드가 살아있는지 추적할 수 있고,여러 애플리케이션이 사용하는 클러스터의 공유 상태를 안정적으로 확인한다.
    • 그래서 어떤 노드가 다운되더라도 일관성 있고 안정적인 성능을 클러스터 전체에 걸쳐 유지 할 수 있다.
  • 데이터 수집에 특화된 플랫폼들
    • Scoop
      • 하둡의 데이터베이스를 관계형 데이터베이스로 엮어낸다.
      • ODBC나 JDBC로 소통 가능한 데이터는 Sqoop을 통해 HDFS의 파일로 변형할 수 있다
      • 레거시 데이터베이스와 Hadoop을 잇는 연결 장치
    • FLUME
      • 대규모 웹로그를 안정적으로 클러스터에 불러올 수 있다.
      • 여러개의 웹서바의 웹로그를 실시간으로 감시하고 클러스터에 게시해 STORM이나 Spark Streaming을 통해 처리한다.
    • Kafka
      • general purpose 의 데이터 수집
      • PC 혹은 웹 서버 클러스터에서 모든 종류의 데이터를 수집해 하둡 클러스터로 내보낸다.

하둡 생태계에는 어떤 요소들이 있나? - (2)ExternalStorage

  • MySQL이든 MongoDB든 어떤 SQL데이터베이스들은 우리 클러스터와 통합해 사용할 수 있다.
  • Sqoop을 통해 우리 클러스터로 데이터를 가져올 뿐 아니라, 반대로 MySQL로 내보낼 수도 있다.
  • 실시간 애플리케이션과 클러스터 사이에 Cassandra나 MongoDB 같은 층을 만들어두는 것을 추천한다.
  • 둘다 많은 처리량을 갖는 키-값 데이터 스토어를 운용하는데 좋은 선택이다.

하둡 생태계에는 어떤 요소들이 있나? - (3)QueryEngine

  • 대화형으로 SQL 쿼리를 입력할 수 있다.
  • Hive와 같은 역할이지만, Hive는 하둡 생태계이며 조금더 견고하게 엮여있다.
  • DRILL
    • 다양한 NoSQL 데이터베이스에 SQL쿼리를 작성해 사용할 수 있도록 한다.
    • Hbase, Cassandra, MongoDB 같은 외부 데이터베이스와 소통할 수 있고 소통한 내용을 엮어서 이질적인 데이터 스토어들에 걸쳐 쿼리를 작성하고 그 결과를 한데 모아줄 수 있다.
  • Hue
    • Cloudera에서는 Hue가 Ambari 의 역할을 한다.
  • PHOENIX
    • DRILL과 유사
    • 전체 데이터 스토리지 기술에 걸쳐 SQL스타일의 쿼리를 할 수 있게 한다.
    • 또한 ACID를 보장하고 OLTP를 제공한다.
      • NOSQL Hadoop 데이터 스토어에 ACID가 보장되면 관계형 데이터베이스의 관계형 데이터 스토어와 엄청 유사해진다.
  • Presto & Zeppelin
    • 전체 클러스터에 쿼리를 실행할 수 있는 또 다른 방법
    • Zep
      • 클러스터와의 상호작용과 사용자 인터페이스를 Notebook 유형으로 접근했다.
    freakyfrog98
    freakyfrog98

    티스토리툴바