software engineering/๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

[BigData] HDFS (Hadoop File System)

jjingle 2024. 1. 3. 16:59

HDFS (Hadoop File System) 

GFS๋ฅผ ๋ชจ๋ธ๋กœ ์„ค๊ณ„
๋ฌผ๋ฆฌ์  ์‹œ์Šคํ…œ์˜ ์‹คํŒจ๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ๋ ˆ๋ฒจ์—์„œ ํ•ด๊ฒฐํ•˜์—ฌ, ์‹œ์Šคํ…œ์˜ ๊ฐ€์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ

 

 

HDFS์˜ ํŠน์ง•

  • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ์— ๊ฑธ์ณ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ์˜ ์žฅ์•  ํ—ˆ์šฉ์„ ์œ„ํ•ด ์ค‘๋ณต ํ—ˆ์šฉ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ 3๊ฐœ ๋ณต์ œํ•ด ๋ณต์‚ฌ๋ณธ์„ ๋‘ 
    • 3๊ฐœ์˜ ๋ธ”๋ก์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ณต์ œ
  • ํŽ˜ํƒ€๋ฐ”์ดํŠธ ์ด์ƒ์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ -> ์ˆ˜ํ‰์  ํ™•์žฅ ๊ตฌ์กฐ๋กœ ์„ค๊ณ„
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ณธ 128MB์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ”

 

HDFS์˜ ์•„ํ‚คํ…์ณ

  • ๋„ค์ž„๋…ธ๋“œ (ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ)
    • ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์†ํ•˜๋Š” ํŒŒ์ผ ๊ณ„์ธต ๊ตฌ์กฐ๋‚˜, ๊ฐ ํŒŒ์ผ์˜ ๋ธ”๋ก ์œ„์น˜๋ฅผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์œ ์ง€
    • ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ ‘์† ๊ด€๋ฆฌ
    • ๋ธ”๋ก ๋ฐ์ดํ„ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ๋งตํ•‘
    • ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ƒ์กด ์—ฌ๋ถ€ ํ™•์ธ
  • ๋ฐ์ดํ„ฐ๋…ธ๋“œ(๋ฐ์ดํ„ฐ ๋ธ”๋ก ์ €์žฅ)
    • ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ œ๊ณต
    • ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ
    • ํด๋Ÿฌ์Šคํ„ฐ์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ ๋ณต์ œ
    • ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒ์กด ์ •๋ณด๋ฅผ ๋„ค์ž„๋…ธ๋“œ๋กœ ์ „์†ก

 

HDFS์˜ ๋™์ž‘๋ฐฉ์‹

1. ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ์„ ์ž‘์€ ์ฒญํฌ๋กœ ๋งŒ๋“ค์–ด ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

   : ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ • ํฌ๊ธฐ์˜ ๋ธ”๋ก(์ผ๋ฐ˜์ ์œผ๋กœ 128MB)์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅ

 

2.WORM(write-once-read-many)

  • HDFS๋Š” WORM ์•ก์„ธ์Šค ๋ชจ๋ธ์„ ์‚ฌ์šฉ
  • ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋ฉด ๋‚ด์šฉ ์ˆ˜์ • ๋ถˆ๊ฐ€ (ex. ํŒŒ์ผ์ด๋™, ํŒŒ์ผ์‚ญ์ œ, ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ)

 

3. ๋„ค์ž„๋…ธ๋“œ ์˜คํผ๋ ˆ์ด์…˜

 

  • HDFS์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ œ๊ณต
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” fsimage๋ผ๋Š” ํŒŒ์ผ๋กœ ๋””์Šคํฌ์—๋„ ์ €์žฅ๋จ
    • HDFS์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ ์ด๋ฆ„
    • HDFS ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
    • HDFS์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์˜ ํผ๋ฏธ์…˜ ์ •๋ณด
  • ํŒŒ์ผ ์ƒ์„ฑ์ด๋‚˜ ํŒŒ์ผ ์‚ญ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์•ผํ•˜๊ณ , ์ด๊ฒƒ์€ fsimage์— ํŠน์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๊ธฐ๋ก๋จ

 

4. HDFS ํŒŒ์ผ ์“ฐ๊ธฐ/ ์ฝ๊ธฐ ๋™์ž‘

 

5. HDFS ํŒŒ์ผ ์“ฐ๊ธฐ ๋™์ž‘

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ํŒŒ์ผ์„ ์“ฐ๊ธฐ์œ„ํ•ด ๋„ค์ž„๋…ธ๋“œ์— ์ ‘์†
  2. ๋„ค์ž„๋…ธ๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ์ „์†ก
  3. ํด๋ผ์ด์–ธํŠธ๋Š” HDFS์— ์“ธ ํŒŒ์ผ์„ ๋ธ”๋ก๋“ค๋กœ ๋‚˜๋ˆ”
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ๋„ค์ž„๋…ธ๋“œ์—๊ฒŒ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ํŒŒ์ผ ์“ฐ๊ธฐ
  5. ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋Š” ์„ค์ •๋œ ๋ณต์ œ๋ณธ ์ˆ˜ ๋งŒํผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์—๋„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  6. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ๋ณต์ œ๋ณธ์ด ๊ธฐ๋ก๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ด ์„ฑ๊ณต์ ์œผ๋กœ ์“ฐ๊ธฐ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ ์•Œ๋ฆผ
  7. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์Œ ๋ธ”๋ก์„ ์“ฐ๊ณ , ์“ฐ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋„ค์ž„๋…ธ๋“œ์— ์™„๋ฃŒ ์•Œ๋ฆผ

 

5. HDFS ํŒŒ์ผ ์ฝ๊ธฐ ๋™์ž‘

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ํŒŒ์ผ ์ฝ๊ธฐ๋ฅผ ์œ„ํ•ด ๋„ค์ž„๋…ธ๋“œ์— ์ ‘์†
  2. ๋„ค์ž„๋…ธ๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋…ธ๋“œ์˜ ์œ„์น˜ ๋ชฉ๋ก์„ ์ „๋‹ฌ
  3. ์ด๋•Œ ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋Š” ๋„คํŠธ์›Œํฌ ์œ„์ƒ์— ๋”ฐ๋ผ ํด๋ผ์ด์–ธํŠธ์™€ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ ์ •๋ ฌ๋จ
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ๋„คํŠธ์›Œํฌ ์ƒ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ๋…ธ๋“œ์— ์ ‘๊ทผํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์Œ
  5. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ธ”๋ก์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋„ค์ž„๋…ธ๋“œ๋Š” ๋‹ค์Œ ๋ฐ์ดํ„ฐ ๋ธ”๋ก๋“ค์˜ ์œ„์น˜๋“ค์„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ

 

HDFS์˜ ๊ณ ๊ฐ€์šฉ์„ฑ

  1. ๋„ค์ž„๋…ธ๋“œ์™€ ๋ฐ์ดํ„ฐ๋…ธ๋“œ ๊ฐ„์˜ ํ†ต์‹ 
    • ์ดˆ๊ธฐํ†ต์‹ 
      • ๋ฐ์ดํ„ฐ๋…ธ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋Š” ๋„ค์ž„๋…ธ๋“œ์— ๋“ฑ๋กํ•ด ๋„ค์ž„๋…ธ๋“œ์—๊ฒŒ HDFS ์ฝ๊ธฐ/์“ฐ๊ธฐ ์˜คํผ๋ ˆ์ด์…˜์„ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์—์„œ ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์„ ์•Œ๋ฆผ
    • ์ •๊ธฐ์ ์ธ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์˜ ์ƒ์กด์—ฌ๋ถ€ ์•Œ๋ฆผ(Heartbeat)
      • ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ(๊ธฐ๋ณธ 3์ดˆ๋งˆ๋‹ค) ๋ฐ์ดํ„ฐ๋…ธ๋“œ์˜ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š”  heartbeat๋ฅผ ๋„ค์ž„๋…ธ๋“œ์— ๋ณด๋ƒ„
      • ๋„ค์ž„๋…ธ๋“œ๊ฐ€ ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ heartbeat๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋…ธ๋“œ๊ฐ€ ์ฃฝ์€ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•จ
  2. Rack-awareness : ๋ฐ์ดํ„ฐ ์ง€์—ญ์„ฑ์„ ๊ณ ๋ คํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ๋ณธ(replica)์„ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•
    • ๋ž™(rack)์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์„ ๋ถ„์‚ฐ
    • ๋ณดํ†ต fault๋Š” ๊ฐ™์€ ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์ผ ๋ž™์—์„œ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์€ ๊ฒƒ์„ ๊ณ ๋ ค

 

 

HDFS ์ฃผ์š” ๋ช…๋ น์–ด

hdfs dfs - ์ปค๋งจ๋“œ ๋ช…๋ น์–ด
  • ls : ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ ์กฐํšŒ
  • mkdir : ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  • rm : ํŒŒ์ผ ์‚ญ์ œ
  • rmdir : ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ
  • copyFromLocal(put) : ๋กœ์ปฌ ํŒŒ์ผ์„ HDFS๋กœ ์ด๋™
  • copyToLocal(get) :  HDFS์˜ ํŒŒ์ผ์„ ๋กœ์ปฌ๋กœ ์ด๋™