본문 바로가기
Computer S&E/빅데이터

[Hadoop] Overview of Hadoop, MapReduce 하둡 - 맵리듀스

by 와플킴 2022. 10. 26.
728x90

Small Talk

빅데이터 처리 순서: Acquisition (취득) - Storage (저장) - Analysis (분석) - Access (접근)

빅데이터에 Hadoop이 필요한 이유

Apache Hadoop: MapReduce 모델을 사용하기 위해 빅데이터 세트의 분산 저장 및 처리에 사용되는 오픈 소스 소프트웨어 프레임워크

commodity hardware로 구성 - 쉽게 볼 수 있는 machine

데이터 저장 및 분석

단일 드라이브에서 모든 데이터를 읽고 쓰는데 오랜 시간이 걸린다

→ 여러 디스크에서 한 번에 분할 데이터를 읽자

사용자는 분석 시간을 단축하는 대신 여러 드라이브에서 접근을 공유할 수 있어야 한다

여기서 문제

  1. 하드웨어 오류: 드라이브 하나에 오류가 발생할 가능성 높음
  2. 99개 드라이브의 출력을 올바르게 결합하기 어렵다.

해결

  1. HDFS: Hadoop Distributed File System 저장소
  2. MapReduce: 그걸 불러와서 쓰는거

모든 데이터 쿼리

  • batch query processor
  • whole dataset에 대해 임시 쿼리를 실행

MapReduce

클러스터에서 병렬 분산 알고리즘을 사용하여 빅데이터를 처리 및 생성하기 위한 프로그래밍 모델 및 관련 구현

Map: 필터링, 정렬

Reduce: summary operation 요약 작업

Programming model

public void map (LongWritable key, Text value,
		OuputCollector<Text, LongWritable> out, Reporter r)
{
	firstname.set(value.toString().split(”\\t”)[1];
	ouput.collect(firstname, ONE);  # mapper → reducer 보내는 함수
}
public void reduce (Text key, Iterator<LongWritable> vals,  # list
		OuputCollector<Text, LongWritable> out, Reporter r)
{
	long s = 0;
	while (vals.hasNext())
		s += vals.next().get();
	sum.set(s);
	output.collect(ley, sum);
}

ex.

mapper: 같은 이름인지 check해서 key - 이름 / value - 1

reducer: 같은 키에 맞춰서 같은 reducer로 할당, 숫자 sum up

이때 John(1,1,1)으로 저장하지 않고 John 3으로 저장

Network로 연결하기 때문에 송/수신 효율을 생각해야 함

Data Locality

mapper가 필요할 data를 예상해서 할당, computation 낮추기 위함

Batch

batch / streaming: data를 모아서 한꺼번에 / 실시간

hadoop은 batch 형식, 일괄 처리 시스템,

Trade-offs를 가진다

Trade-offs

대화형 SQL으로는 어려움, 한 번에 묶어서 처리

Iterative (반복) 처리 ex. 머신 러닝

top-wordcount: Hadoop은 word 다 세고 줄 세우기 한 번 더 하는 방식

Streaming 처리 ex. 실시간

반응형

Hadoop Ecosystem

HBase

HDFS의 칼럼 기반 데이터베이스

구글의 BigTable 논문을 기반으로 개발된 것으로, 실시간 랜덤 조회 및 업데이트가 가능하며, 각각의 프로세스들은 개인의 데이터를 비동기적으로 업데이트 할 수 있다. 단, MapReduce는 일괄처리 방식으로 수행된다.

Pig

복잡한 MapReduce 프로그래밍을 대체할 Pig Latin이라는 자체 언어를 제공.

MapReduce API를 매우 단순화시키고 SQL과 유사한 형태로 설계되었다.

Cascading

데이터 분석 및 관리(rich Data Analytics and Data Management) 어플리케이션을 쉽고 빠르게 개발할 수 있게 돕는 자바 기반의 어플리케이션 프레임워크

Hive

하둡 기반의 데이터 웨어하우징 솔루션

페이스북에서 만든 오픈소스로, SQL과 매우 유사한 HiveQL이라는 쿼리를 제공한다. 그래서 자바를 잘 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와준다.

HiveQL은 내부적으로 MapReduce job으로 변환되어 실행된다.

728x90

댓글