Small Talk
빅데이터 처리 순서: Acquisition (취득) - Storage (저장) - Analysis (분석) - Access (접근)
빅데이터에 Hadoop이 필요한 이유
Apache Hadoop: MapReduce 모델을 사용하기 위해 빅데이터 세트의 분산 저장 및 처리에 사용되는 오픈 소스 소프트웨어 프레임워크
commodity hardware로 구성 - 쉽게 볼 수 있는 machine
데이터 저장 및 분석
단일 드라이브에서 모든 데이터를 읽고 쓰는데 오랜 시간이 걸린다
→ 여러 디스크에서 한 번에 분할 데이터를 읽자
사용자는 분석 시간을 단축하는 대신 여러 드라이브에서 접근을 공유할 수 있어야 한다
여기서 문제
- 하드웨어 오류: 드라이브 하나에 오류가 발생할 가능성 높음
- 99개 드라이브의 출력을 올바르게 결합하기 어렵다.
해결
- HDFS: Hadoop Distributed File System 저장소
- 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으로 변환되어 실행된다.
'Computer S&E > 빅데이터' 카테고리의 다른 글
[빅데이터] 논문 리뷰 An Experimental Comparison of Pregel-like Graph Processing Systems (0) | 2022.11.09 |
---|---|
[Hadoop] MapReduce Application (0) | 2022.10.26 |
[Hadoop] 논문 리뷰 MapReduce: Simplified Data Processing on Large Clusters (0) | 2022.10.26 |
[Hadoop] hadoop에서의 straggler (0) | 2022.10.25 |
[Hadoop] MapReduce: Simplified Data Processing on Large Clusters 논문 (0) | 2022.10.07 |
댓글