📎 Tacademy


2.1. Hadoop

### 저장 storage: HDFS(Hadoop Distributed File System)
### 연산: MapReduce


2.2. HDFS Access

1) shell
2) java api
3) ecosystem
- Flume(network source로 데이터 수집) - Sqoop(HDFS와 RDBMS 사이 데이터 전송) - Hue(Web 기반으로 browse, upload, download, file view)

file write & read

name node의 mete data를 통해 접근

따라서 name node 데몬 중단되면 cluster 접근 불가
HA로 2개의 name node를 구성하기도 함 (Active/Standby)
1개 name node 구성시 helper node(Secondary name node)가 추가됨

files blocks
/logs/031512.log B1,B2,B3
/logs/041213.log B4,B5
nodes  
node A B1, B3, B4
node B B1, B2, B3, B4
node C B3, B5
node D B1, B5, B2
node E B2, B5, B4

node 중 idle이 높은 node부터 접근


2.3. 구성요소

1) client node node를 통해 정보를 받고 이후 data node와 직접 통신

2) master node(job tracker, name node) slave node에 대한 정보와 실행할 task 관리

3) slave node(data node, task node) client 요청 시 data 전달, task 수행

Data Analytics 관점

Data Storage 관점


2.4. MapReduce

File
Deer, Bear, River
Car, Car, River
Deer, Car, Bear

Mapping: 파일은 한 줄씩 읽어서 데이터 변경

데이터를 key와 value 형태로 pairing하고 list화

   
map1 Deer, 1
  Bear, 1
  River, 1
map2 Car, 1
  Car, 1
  River, 1
map3 Deer, 1
  Car, 1
  Bear, 1

shuffling

grouping, sorting

 
Bear, 1
Bear, 1
Car, 1
Car, 1
Car, 1
Deer, 1
Deer, 1
River, 1
River, 1

Reducing: map의 결과 데이터를 집계

aggregating, 후 extract

   
red1 Bear, 2
red2 Car, 3
red3 Deer, 2
red4 River, 2