<Hadoop์ด๋ž€..๐Ÿ˜>

๊ตฌ๋งยท2025๋…„ 1์›” 6์ผ

๊ฐœ์š”

ํ•˜๋‘ก์ด๋ž€ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋‚ด์–ด, ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์„ ๋ถ„์‚ฐ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
Java๋กœ ์ž‘์„ฑ๋œ Apache ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์ด๋‹ค.

๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ์š”๊ตฌ

์˜จ๋ผ์ธ ์„œ๋น„์Šค์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์œผ๋กœ ๋ฐ์ดํ„ฐ ์–‘๊ณผ ์ข…๋ฅ˜๊ฐ€ ๊ธ‰์ฆํ•˜๋ฉฐ, ๊ธฐ์กด์˜ RDBMS๋กœ๋Š” ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ํ•œ๊ณ„๊ฐ€ ๋ฐœ๊ฒฌ๋จ

๊ณ ๋น„์šฉ์˜ RDBMS์˜ ๋Œ€์•ˆ

RDBMS๋Š” ๊ณ ์„ฑ๋Šฅ ์žฅ๋น„์™€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ, ํ•˜๋‘ก์€ ์ €๊ฐ€์˜ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์—์„œ ๋™์ž‘

ํ•˜๋‘ก ์•„ํ‚คํ…์ฒ˜

ํ•˜๋‘ก์€ 3๊ฐ€์ง€์˜ ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํฌํ•จํ•œ๋‹ค.
HDFS / Map-Reduce / YARN

1. HDFS(Hadoop Distributed File System)

๋ฐ์ดํ„ฐ ์ €์žฅ

  • ํ•˜๋‘ก์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•œ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํŒŒ์ผ์„ ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐ์ €์žฅํ•˜๋Š” ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‹ค.
  • ๋ณดํ†ต ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ 128MB, 256MB ํฌ๊ธฐ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ €์žฅํ•œ๋‹ค.

Master-Slave ๊ตฌ์กฐ

  • ๋„ค์ž„๋…ธ๋“œ(Name Node)
    - ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ(ํŒŒ์ผ์ด๋ฆ„, ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ, ํŒŒ์ผ ํฌ๊ธฐ ๋“ฑ)์„ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ
    • ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ 3์ดˆ๋งˆ๋‹ค heartbeat๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์ด ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•จ
    • heartbeat๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋ฅผ ์žฅ์•  ๋…ธ๋“œ๋กœ ํŒ๋‹จํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•จ
  • ๋ฐ์ดํ„ฐ ๋…ธ๋“œ(Data Node)
    - ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ ๋„ค์ž„ ๋…ธ๋“œ์˜ ์ง€์‹œ์— ๋”ฐ๋ผ ์ž‘์—…(๋ธ”๋ก ๋ณต์ œ, ์ƒ์„ฑ, ์‚ญ์ œ)
    - client์˜ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ
    • ์ž์‹ ์ด ๋ณด์œ ํ•œ ๋ธ”๋ก ์ •๋ณด๋ฅผ ๋„ค์ž„ ๋…ธ๋“œ์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณด๊ณ 

๋ณต์ œ

  • ๋ฐ์ดํ„ฐ ์œ ์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ณธ 3๊ฐœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

๊ฒฐํ•จ ๋‚ด์„ฑ(Fault Tolerance)

๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋„ค์ž„ ๋…ธ๋“œ๋Š” ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ๋ณต์ œํ•ด ๋ฐ์ดํ„ฐ ์œ ์‹ค์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

2. Map Reduce

  • ํ•˜๋‘ก์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๊ณ„์‚ฐ์„ ๋‹ด๋‹นํ•˜๋ฉฐ ํฌ๊ฒŒ Map๊ณผ Reduce ๋‘ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

Map ๊ณผ์ •

  1. Splitting
  • HDFS์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ • ํฌ๊ธฐ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด, ๋งต ์ž‘์—…์— ์ „๋‹ฌ
  1. Mapper ์‹คํ–‰, Mapping
  • ๊ฐ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ Mapper ์‹คํ–‰
  • ๋ฐ์ดํ„ฐ๋ฅผ (ํ‚ค,๊ฐ’) ์Œ์œผ๋กœ ๋ณ€ํ™˜
  1. ์ค‘๊ฐ„ ๊ฒฐ๊ณผ ์ƒ์„ฑ
  • Mapper์˜ ๊ฒฐ๊ณผ๋Š” HDFS์— ์ €์žฅ๋˜์ง€ ์•Š๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋กœ์ปฌ ๋””์Šคํฌ์— ์ €์žฅ๋จ

Redcue ๊ณผ์ •

  1. Shuffling, Sorting
  • Mapper์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ Reducer์— ์ „์†กํ•˜๊ธฐ ์ „์— ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ ์ •๋ ฌ
  • ์ด ๊ณผ์ •์—์„œ ๋™์ผํ•œ ํ‚ค๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง€๋„๋ก ํ•จ
  1. Reducer ์‹คํ–‰, Reducing
  • ๊ฐ Reducer๋Š” ๋™์ผํ•œ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ง‘๊ณ„, ๊ณ„์‚ฐ ๋˜๋Š” ๋ณ€ํ™˜ ์ž‘์—… ์ˆ˜ํ–‰
  1. ์ตœ์ข… ์ถœ๋ ฅ ์ €์žฅ
  • ์ตœ์ข… ์ถœ๋ ฅ์€ ๋‹ค์‹œ HDFS์— ์ €์žฅ๋จ

Map Reduce ํŠน์ง•

  • ๋ถ„์‚ฐ ๋ฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
    - ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ ์ง€์—ญ์„ฑ
    - ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์—์„œ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ํ•˜๊ธฐ์—, ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„์šฉ ์ตœ์†Œํ™”
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋…๋ฆฝ์„ฑ
    - ๋งต๋ฆฌ๋“€์Šค๋Š” Java๋ฟ๋งŒ ์•„๋‹ˆ๋ผ python, c++ ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

3. YARN(Yet Another Resource Negotiator)

  • ํ•˜๋‘ก์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ์ž์›์ธ ๋ฉ”๋ชจ๋ฆฌ, Cpu ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ž‘์—…์˜ ์Šค์ผ€์ค„๋ง์„ ๋‹ด๋‹นํ•œ๋‹ค.
  • ๊ตฌ์„ฑ์š”์†Œ๋Š” Resource Manager, Node Manager, Application Master
  • Resource Manager
    - Master Node์—์„œ ๋™์ž‘
    - ์ „์ฒด ํด๋กœ์Šคํ„ฐ์˜ ์ž์› ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ž‘์—…์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹น
  • Node Manager
    - Slave Node์—์„œ ๋™์ž‘
    - ๊ฐ ๋…ธ๋“œ์—์„œ ์ž์› ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , Resource Manager๊ณผ ํ†ต์‹ ํ•˜์—ฌ ์ƒํƒœ๋ฅผ ๋ณด๊ณ 
  • Application Master
    - ํŠน์ • ์ž‘์—…์˜ ๋ผ์ดํ”„์‚ฌ์ดํด(์ƒ์„ฑ,์‹คํ–‰,์ข…๋ฃŒ)๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•œ๋‹ค

ํ•˜๋‘ก์˜ ์žฅ์  ๋ฐ ๋‹จ์ 

์žฅ์ 

  • ์˜คํ”ˆ์†Œ์Šค
  • ํ•„์š”์— ๋”ฐ๋ผ ๋…ธ๋“œ ์ถ”๊ฐ€ํ•˜์—ฌ ์ €์žฅ์†Œ์™€ ์ฒ˜๋ฆฌ ์šฉ๋Ÿ‰ ํ™•์žฅ๊ฐ€๋Šฅ
  • Fault Tolerance
    - ๋ฐ์ดํ„ฐ ๋ณต์ œ๋กœ ์žฅ์•  ๋ฐœ์ƒ ์‹œ์—๋„ ๋ฐ์ดํ„ฐ ์†์‹ค ์—†์ด ์šด์˜ ์ง€์†๊ฐ€๋Šฅ
  • ์ €๋ ดํ•œ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋กœ ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๊ฐ€๋Šฅ
  • ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”

๋‹จ์ 

  • HDFS์— ์ €์žฅ๋œ ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
  • ๋ฐฐ์น˜ ์ž‘์—…์— ์ ํ•ฉํ•˜๊ธฐ์—, ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์—๋Š” ๋ถ€์ ํ•ฉ

ํ•˜๋‘ก 1.0 vs. 2.0

ํ•˜๋‘ก 1.0 ํŠน์ง• ๋ฐ ํ•œ๊ณ„

  • ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ HDFS + Map-Reduce๋กœ๋งŒ ๊ตฌ์„ฑ๋จ
  • ๋ชจ๋“  ์ž‘์—…์ด Map-Reduce์„ ์ค‘์‹ฌ์œผ๋กœ๋งŒ ์ด๋ค„์ ธ ์œ ์—ฐ์„ฑ์ด ๋‚ฎ์Œ
  • ์ž์› ๊ด€๋ฆฌ ๋ฐ ์ž‘์—… ์‹คํ–‰์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์ธํ•ด ๋ณ‘๋ชฉ ํ˜„์ƒ ๋ฐœ์ƒ

ํ•˜๋‘ก 2.0์˜ ๋“ฑ์žฅ

์œ„์™€ ๊ฐ™์€ 1.0์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด YARN์„ ๋„์ž…ํ•ด, ์ž์› ๊ด€๋ฆฌ์™€ ๊ณ„์‚ฐ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•จ

ํ•˜๋‘ก 2.0์˜ ์ฃผ์š” ํŠน์ง•

ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ

  • ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €, ๋…ธ๋“œ ๋งค๋‹ˆ์ €(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ”์™€ ๊ฐ™์Œ)

์ž‘์—… ๊ด€๋ฆฌ

  • Application Master
    - ํŠน์ • ์ž‘์—…์˜ ๋ฆฌ์†Œ์Šค ์š”๊ตฌ ์‚ฌํ•ญ ๊ด€๋ฆฌ ๋ฐ ํ•„์š”ํ•œ Container ์š”์ฒญ
    • ์œ„์™€ ๊ฐ™์Œ
  • Container
    - ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ๋‹จ์œ„
    • ์ž‘์—…์€ ์—ฌ๋Ÿฌ ๊ฐœ ํƒœ์ŠคํŠธ๋กœ ์„ธ๋ถ„ํ™”๋˜์–ด, ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋จ

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ ๊ฐœ์„ 

  • ๋งต๋ฆฌ๋“€์Šค์™€ ๋ถ„๋ฆฌ๋œ ์ž์›๊ด€๋ฆฌ
    - YARN์€ ๋งต๋ฆฌ๋“€์Šค๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Spark, Tez์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์—”์ง„ ์ง€์›
  • ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ
    - ์ž‘์—…์ด ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ๋” ์œ ์—ฐํ•œ ์ž์› ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์ง

ํ•˜๋‘ก ๋™์ž‘ ๊ณผ์ •

1. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ

ํด๋ผ์ด์–ธํŠธ๋Š” Application ์‹คํ–‰ ์š”์ฒญ๊ณผ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ Resource Manager์— ์ œ์ถœ

2. Application Master ์ƒ์„ฑ

Resource Manager์€ ์ ์ ˆํ•œ Node maganer ์„ ํƒํ•ด Application Master ์ƒ์„ฑ

3. Resource ์š”์ฒญ

Applicationn Master๋Š” Resource Manager์— container ํ• ๋‹น ์š”์ฒญ์„ ๋ณด๋ƒ„

4. Container ์‹คํ–‰

Resource Manager์€ Node Manager์— container ์‹คํ–‰ ์ง€์‹œ ๋‚ด๋ฆผ

5. ์ž‘์—… ์‹คํ–‰

์ž‘์—…์€ ๊ฐ container์—์„œ ์‹คํ–‰๋˜๊ณ , Application Master๊ฐ€ ์ƒํƒœ ๊ด€๋ฆฌ

6. ์ž‘์—… ์ข…๋ฃŒ

์ž‘์—… ์™„๋ฃŒ ํ›„, Application master๋Š” Resource Manager์— ๋ณด๊ณ ํ•˜๊ณ  ์ž์›์„ ํ•ด์ œ

profile
๐Ÿ“ ๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค ํ•™๋ถ€์ƒ์˜ ๊ธฐ๋ก์žฅ!

0๊ฐœ์˜ ๋Œ“๊ธ€