욱이의 냉철한 공부

[Hadoop, 하둡] 빅데이터 하둡 이해하기 본문

데이터엔지니어링/빅데이터 : Hadoop

[Hadoop, 하둡] 빅데이터 하둡 이해하기

냉철한 욱 2021. 6. 22. 02:47

 

빅데이터의 유형

1) 구조화 데이터

- 행과 열로 구조화 되어 있다.

- 고객데이터, 업무데이터, 거래데이터 등

- 관계 데이터베이스에 저장

- 앞으로 언급할 관계 데이터베이스 : 오라클-db, my-sql, mariai-db

 

2) 반구조화 데이터

- XML, JSON : 키와 값 구조로 되어있다.

- NoSQL 데이터베이스에 저장

- 앞으로 언급할 NoSQL 데이터베이스 : Mongo-db, Cassndra, Hbase

 

3) 비구조화 데이터 ,빅데이터

- 텍스트, 동영상, 음성

- 하둡(분산처리시스템)에 저장 및 처리

- 앞으로 언급할 하둡에코시스템 : Hive 1, Hive2, Pig, Hbase, Spark

 

=> 빅데이터 및 비구조화 데이터를 저장하고 처리하기 위한 프로그램 하둡을 알아보자!


 

 

 

 

1. Hadoop 하둡은 무엇인가?

- 빅데이터를 분할하여 저장하고 처리하기 위한 소프트웨어이다.

빅데이터가 있는데 데이터베이스에 들어있는 구조화(관계형)데이터 이외가 들어와 있어야 한다. 대표적으로 비구조화 데이터이며 하둡은 이 데이터들을 분산으로 저장(HDFS)해서 분산해서 처리(MAP+REDUCE) 작업을 한다.

 

- 여러 컴퓨터로 구성된 클러스터를 이용하여 방대한 양의 데이터를 처리하는 분산 처리 프레임워크. 엔진 형태로 되어 있는 미들웨어와 소프트웨어 개발 프레임워크로 구성되어 있다.

 

- 즉시 응답해야 하는 트랜잭션 처리보다는 데이터를 모은 후 처리하여 작업을 완료해야 응답을 주는 방식으로 설계되어있다. 따라서 어느 정도의 시간이 소요되는 방대한 양의 데이터 처리에 적합하다.

 

- 하둡 = HDFS(저장) + (MAP+REDUCE)(처리)

맵리듀스의 분산 처리 구조를 사용하여 맵리듀스는 하나의 큰 데이터를 여러개의 조각으로 나누어 처리하는 MAP단계와 처리된 결과를 하나로 모아서 취합한 후 결과를 도출해 내는 REDUCE 단계로 구성되어 있다.

 

 

 

2. HDFS(저장)

- 예를 들어 엑셀은 xlsx 파일이어야지 오픈 할 수 있다. 하둡도 마찬가지로 하둡만의 파일 시스템을 가지고 있다. 오직 이 파일만이 MAPREDUCE(처리) 할 수 있다.

- HDFS는 대용량 파일을 클러스트에 여러 블록으로 분산하여 저장한다. 이 때 블록들은 마지막 블록들을 제외하고 모두 64MB이로 동일 하다.

 

 

 

3. MAPREDUCE(처리)

- 구글에서 개발한 방대한 양의 데이터를 처리하는 프로그래밍 모델로 효과적인 병렬 및 분산 처리를 제공한다.

- MAP 작업은 입력 데이터를 처리하여 중간 데이터를 생성하고, REDUCE 작업은 SHUFFLE된 중간 데이터를 병합하여 출력 데이터(HDFS)를 생성한다. => 병렬 및 분산 처리

- MAP과 REDUCE가 동시에 실행한다.

 

 

HDFS (64MB + 64MB +64MB +64MB +64MB +64MB +64MB +23MB => 노드로 블록들 분할 저장)

|

빅데이터의 분할 처리 ----------> 컴퓨터1 ------------> 연산 결과의 집약 처리 REDUCE

MAP                                     컴퓨터2

                                            컴퓨터3

                                           ...................

                                            컴퓨터n

 

                                            SHUFFLE

                            여러 컴퓨터에 의한 병렬 분산 처리

                                               분석

 

 

 

4. 하둡 사용의 특징

- 하둡은 운영체제가 아니라 프로그램(소프트웨어)이다.

- 하둡은 자바로 만들어져 있다.

- 하둡에코시스템 : 다른 프로그램들과 결합되어 편리한 하둡시스템을 구축할 수 있다.

HIVE는 자바를 몰라다 sql문장으로 MAPREUDCE를 수행한다.

SPARK는 r이나 python으로 작업을 다이렉트로 수행 할 수 있다.

- 하둡 명령어는 OS명령어하고 비슷하다.

- 데이터의 복제본을 저장하기 때문에 데이터의 유실이나 장애가 발생했을 때도 데이터의 복구가 가증함

- 여러 대의 서버에 데이터를 저장하고, 데이터가 저장된 각 서버에서 동시에 데이터를 처리

 

 

 

5. 하둡 대표 명령어 - OS명렁어(unix명령어)하고 비슷한 shell 명령어

- hadoop fs -help : 하둡 fs에서 제공하는 명령어 확인

- hadoop fs -ls : 지정된 폴더나 파일 정보를 출력, 권한정보, 소유자, 생성일자, 바이트 수 확인

- hadoop fs -lsr : 현재 폴더 및 하위 디렉토리 정보까지 출력

- hadoop fs -du : 지정된 폴더나 파일에 사용량을 확인하는 명령어

- hadoop fs -dus : du는 폴더와 파일별 용량 / dus는 전체 합계 용량

- hadoop fs cat : 지정된 파일의 내용을 출력. 텍스트 파일만 출력

- hadoop fs -mkdir : 지정된 경로에 폴더를 생성, 이미 존재하면 error

- hadoop fs -put [운영체제폴더파일][HDFS] : 지정된 운영체제 폴더나 파일을 HDFS에 복사

- hadoop fs -get [HDFS][운영체제폴더파일] : HDFS에 저장된 파일이나 폴더를 OS로 이동

- hadoop fs -rmr : 지정한 파일이나 폴더를 삭제

- hadoop fs -sts : 지정된 경로의 통계 정보 출력

- hadoop fs -expunge : 휴지통비우기, HDFS는 삭제한 파일을 일정기간동안 보관함