개인공부/빅데이터공부

하둡

소소한필통 2022. 8. 22. 03:26

하둡

**정의 : 빅데이터의 저장과 분석을 위한 분산 컴퓨팅 솔루션**

**하둡 세분화**

빅데이터 : 한대의 컴퓨터로는 저장하거나 연산하기 어려운 규모의 거대 데이터

분산 : 여러대의 컴퓨터로 나눠서 일을 처리함.

저장 : 데이터를 저장한다.

분석 : 데이터가 저장된 컴퓨터에서 데이터를 분석하고 그 결과를 합친다.

**사용이유**

  1. 정형 데이터는 RDBMS에서 저장가능하지만 비정형 데이터는 RDBMS에 저장하기 너무 큼
  2. OpenSource 프로그램

 

**하둡에서 빅데이터**

3V : Volume, Velocity, Variety

**volume** : 크기(tera, peta), **분산 컴퓨팅 솔루션** : hadoop, GFS,GreenPlum, Vertica, Netezza, Kickfire

**velocity** : 실시간 처리, 장기적인 접근

**Variety** : **정형**(DB에 미리 생성되있는 테이블에 저장된 데이터 이용, 일정한 형식을으로 구성) / **반정형**(xml, html과 메타데이터나 스키마를 포함하는 데이터) / **비정형**(고정된 필드에 저장되있지 않는 데이터)

**장점**

  1. 비용(ㅇ오픈소스), 데이터 처리(각 서버에서 데이터 처리 가능), 장애 대비(복제본을 만들기 때문)
  2. 강력한 보안 기능(커버노스 인증)
  3. WebHDFS REST API 제공
  4. HBase

**하둡 에코 시스템**

 

**하둡을 이용한 프로젝트**

  1. 데이터 통합
  2. 전문적인 분석
  3. 서비스로서의 하둡
  4. 스트리밍 분석
  5. 복합 이벤트 처리
  6. ETL로 스트리밍
  7. SAS 대체 혹은 증강

[참고블로그](

HDFS(배치 데이터)

분산 환경 빅데이터 오픈소스 플랫폼 : HDFS, 하이브, HBase

**HDFS(Hadoop Distributed File System) : 거대한 용량의 데이터들을 저장하고 프로세싱할 수 있는 분산 저장소**

데이터를 분산하여 복제 저장하는 특징으로 거대한 용량의 데이터를 저장할수있다.

HDFS에 저장된 데이터를 바탕으로 **hive or spark**로 데이터를 프로세싱할 수 있게 된다.

가장 많이 사용되는 것은 Spark

Spark

**정의 인메모리에서 사용되는 빅데이터 프로세싱 도구**

배치 데이터를 프로세싱 할 수 있고/ 스트리밍 처리를 통해 지속적으로 데이터를 처리 할 수 있다.

SQL구문이나 머신러닝 기능도 제공

pyspark를 사용하면 컴파일이 필요없고 코드를 그때 그때 바꿔가면서 실행할 수 있다는 장점이 있음(with 주피터 노트북 or 제플린과 같은 노트북 도구를 사용하면 코드 결과를 즉각적으로 볼 수 있다.)

아파치 KAFKA(실시간 데이터 처리)

사기감지시스템 FDS(Fraud Detection System)

하둡 개발 준비

추가적인 공부

1. RDBMS공부하기(HDFS와의 차이점은 상대적인 데이터 용량)

2. 구글의 GFS, 맵리듀스 논문 보기

3. Zookeeper :

  1. 분산코디네이터, 서버간의 상호조정이 필요한 시스템,

**기능** :

  1. 하나의 서버에서 서비스가 집중되지 않게 서비스를 분산,
  2. 하나의 서버에서 처리한 결과를 다른 서버와 동기화 시켜 데이터 안전성 보장,
  3. 운영서버가 문제 발생할 때 다른 서버를 운영서버로 제공해 서비스를 문제 없이 만들어 준다.
  4. 분산 환경을 구성하는 서버들의 환경 설정을 통합적으로 관리

4. Oozie

워크플로우 관리

하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템

자바 서블릿 컨테이너에서 실행되는 자바 웹 어플리케이션 서버

맵 리듀스 작업이나 피그 작업에 특화된 액션으로 관련된 워크플로우를 제어하는 기능 관리

5. Hbase

HDFS기반의 컬럼 기반 Database, 구글의 빅테이블 논문을 기반으로 만듬

실시간 업데이트, 비동기적으로 업데이트 가능(단 MapReduce는 일괄처리)

6. Hive

데이터를 분석할 수 있도록 만듦 아마 spark 쓰면 될듯

7. Mahout

하둡 기반 여러가지 알고리즘 지원(분류, 클러스터링, 추천 및 협업 필터링, 페턴 마이닝, 회귀 분석, 진화알고리즘 등)

8. HCatalog

하둡으로 생성된 데이터를 공유할 수 있는 테이블 및 스토리지 관리 서비스(하둡 에코 시스템의 상호 운영성이 상승 시킬 수 있다)

9. Avro

RPC와 데이터 직렬화를 지원하는 프레임 워크

json을 이용해서 데이터 형식과 프로토콜을 정의하며 작고 빠른 바이너리 포멧으로 데이터를 직렬화 함.

10. chukwa, Flume, Scribe

**chukwa** : 분산환경에서 생성되는 데이터를 HDFS에 안전적으로 저장하는 플랫폼

분산된 각 서버에서 에전트를 실행, 콜랙터가 에전트로 부터 데이터를 받아서 HDFS에 저장

콜랙터는 100대의 에전트당 하나로 구성, 데이터 중복등 작업은 mapreduce로 작업

**Flume** : 분산된 서버에 에이전트가 있고, 데이터를 합치는 콜랙터가 있다.

차이점 : 데이터 흐름을 관리하는 마스터 서버가 있고, 데이터를 어디서 수집하고 어떤방식으로 전송하며 어디에 전송할지를 동적으로 저장할 수 있다는 장점이 있다.

Scribe : 데이터를 중앙 집중서버로 전송하는 방식,

11. Sqoop, Hiho

12. Impala, Tajo

참고자료

[생활코딩](https://www.youtube.com/watch?v=HCR1ILMROfI)

[하둡유튜브강의1](https://www.youtube.com/watch?v=5-v6upwrYyk)

[하둡유튜브강의2](https://www.youtube.com/watch?v=tzsPfkub5XY)

[하둡공식문서](https://hadoop.apache.org/docs/r2.10.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)

[하둡공식문서의역](https://jangseongwoo.github.io/hadoop/hadoop_hdfs/)

 

'개인공부 > 빅데이터공부' 카테고리의 다른 글

하둡 이론  (0) 2022.08.26