5.11 HDFS#

Apache Hadoop์€ HDFS๋ฅผ ๋น„๋กฏํ•œ ๋ถ„์‚ฐ ์ปดํ“จํŒ…์„ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. HDFS๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ, ๋†’์€ ๋‚ด๊ตฌ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. HDFS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ์ €์žฅํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ณ  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google File System#

image.png

๋ถ„์‚ฐ ํ™˜๊ฒฝ์ด๋ผ๊ณ  ํ•˜๋ฉด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ตฌ์ถ•๋œ ํ™˜๊ฒฝ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„์‚ฐ ํด๋Ÿฌ์Šคํ„ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„๋ฉด Master-Slave์™€ Master-Slave๊ฐ€ ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ๊ตฌ๋ถ„ ๋ฉ๋‹ˆ๋‹ค. GFS์™€ ์ด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌํ˜„ํ•œ HDFS์˜ ๊ฒฝ์šฐ Master-Slave ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค๊ณ„ ๊ตฌ์กฐ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ €๊ฐ€ ์žฅ๋น„๋ฅผ scale-out ํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค๋Š” ์ ์—์„œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Master-Slave์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ Master์— ๋ถ€ํ•˜๊ฐ€ ๊ฐ€ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์„ ํ•ญ์ƒ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ master node์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉด ์ „์ฒด node์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— master node์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด์‹œ๋ฉด GFS client์™€ GFS chunkserver๊ฐ€ data๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ master์™€ ์ง์ ‘ data๋ฅผ ์ฃผ๊ณ  ๋ฐ›์ง€ ์•Š๊ณ  master๊ฐ€ ์•„๋‹Œ chunkserver์™€ data๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์žˆ์Œ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด master์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, GFS master์—์„œ data processing์„ ํ•œ๋‹ค๋˜์ง€ data๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ๋ณด๋‚ด๋Š” ์ผ์€ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

HDFS#

HDFS๋Š” ์•ž์„œ ์‚ดํŽด๋ณธ GFS์™€ ๋™์ผํ•˜๊ฒŒ master-slave ๊ตฌ์กฐ์˜ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

hdfsarchitecture.png

NameNode๋Š” ์–ด๋–ค ์—ญํ• ์„ ํ• ๊นŒ์š”?#

NameNode์˜ ์ฃผ์š” ์—ญํ• ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ๋…ธ๋“œ์˜ ๊ด€๋ฆฌ์ž…๋‹ˆ๋‹ค. NameNode๋Š” ๋ธ”๋ก ๋ณต์ œ์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค.ย ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ DataNode์—์„œ ์ •๊ธฐ์ ์œผ๋กœ Heartbeat ๋ฐ Blockreport๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.ย ํ•˜ํŠธ๋น„ํŠธ ์ˆ˜์‹ ์€ DataNode๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.ย Blockreport์—๋Š” DataNode์˜ ๋ชจ๋“  ๋ธ”๋ก ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ ์ข…๋ฅ˜#

  • Fsimage ํŒŒ์ผ

    • ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ๋ธ”๋ก ์ •๋ณด

  • Edits ํŒŒ์ผ

    • ํŒŒ์ผ์˜ ์ƒ์„ฑ, ์‚ญ์ œ์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ

    • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋‹ค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒ์„ฑ

๋ณด์กฐ ๋„ค์ž„๋…ธ๋“œ(SNN : Secondary Name Node)#

fsimage.png

  • Namenode๊ฐ€ ๊ตฌ๋™๋˜๊ณ  ๋‚˜๋ฉด Edits ํŒŒ์ผ์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒ์„ฑ

    • ๋„ค์ž„๋…ธ๋“œ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋นˆ๋ฒˆํ•˜๋ฉด ๋น ๋ฅธ ์†๋„๋กœ Edits ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    • ์ด๋Š” ๋„ค์ž„๋…ธ๋“œ์˜ ๋””์Šคํฌ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Œ

  • SNN์€ Fsimage์™€ Edits ํŒŒ์ผ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ mergeํ•˜์—ฌ ์ตœ์‹  ๋ธ”๋ก์˜ ์ƒํƒœ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑ

    • ํŒŒ์ผ์„ mergeํ•˜๋ฉด์„œ Edits ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ ๋ถ€์กฑ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ

Hadoop 2.0 - Standby NameNode#

  • HDFS๋Š” ๊ตฌ์กฐ์ƒ namenode๊ฐ€ ๋‹จ์ผ ์‹คํŒจ ์ง€์ 

  • HDFS์—์„œ ๊ณ ๊ฐ€์šฉ์„ฑ(High Availability)๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด namenode๋ฅผ ์ด์ค‘ํ™”

    • Active namenode

    • Standby namenode

  • Active namenode์™€ Standby namenode๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋ธ”๋ก ๋ฆฌํฌํŠธ์™€ ํ•˜ํŠธ๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ฐ›์•„์„œ ๋™์ผํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ , ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์—๋””ํŠธํŒŒ์ผ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

  • Active namenode

    • ๊ธฐ์กด์˜ namenode์˜ ์—ญํ• 

  • Standby namenode

    • Active namenode์™€ ๋™์ผํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€

    • ๋งŒ์ผ active namenode์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ด๋ฅผ ๋Œ€์ฒดํ•จ

    • ๋‹ค๋งŒ active namenode์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ์ž๋™์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์›Œ์„œ ์ฃผํ‚คํผ๋ฅผ ํ™œ์šฉํ•ด ์žฅ์•  ๋ฐœ์ƒ์‹œ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

    • ๋”๋ถˆ์–ด Standby namenode๋Š” SNN์˜ ์—ญํ• ๋„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๊ฐ€์šฉ์„ฑ ๋ชจ๋“œ์—์„  SNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

DataNode#

  • ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์—ญํ• 

  • ์ฃผ๊ธฐ์ ์œผ๋กœ ๋„ค์ž„๋…ธ๋“œ์— ํ•˜ํŠธ๋น„ํŠธ์™€ ๋ธ”๋ก๋ฆฌํฌํŠธ๋ฅผ ์ „๋‹ฌ

    • ๋„ค์ž„๋…ธ๋“œ๋Š” ํ•˜ํŠธ๋น„ํŠธ๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จ

    • ๋ธ”๋ก๋ฆฌํฌํŠธ๋กœ ๋ธ”๋ก์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒดํฌํ•˜๊ณ , ๋„ค์ž„๋…ธ๋“œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

HDFS Read mechanism#

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ_2022-01-10_แ„‹แ…ฉแ„Œแ…ฅแ†ซ_10.41.49.png

  1. ๋„ค์ž„๋…ธ๋“œ์— ํŒŒ์ผ์ด ๋ณด๊ด€๋œ ๋ธ”๋ก ์œ„์น˜ ์š”์ฒญ

  2. ๋„ค์ž„๋…ธ๋“œ๊ฐ€ ๋ธ”๋ก ์œ„์น˜ ๋ฐ˜ํ™˜

  3. ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ํŒŒ์ผ ๋ธ”๋ก์„ ์š”์ฒญ

    • ๋…ธ๋“œ์˜ ๋ธ”๋ก์ด ๊นจ์ ธ ์žˆ์œผ๋ฉด ๋„ค์ž„๋…ธ๋“œ์— ์ด๋ฅผ ํ†ต์ง€ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ธ”๋ก ํ™•์ธ

HDFS Write mechanism#

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ_2022-01-10_แ„‹แ…ฉแ„Œแ…ฅแ†ซ_10.40.00.png

  1. ๋„ค์ž„๋…ธ๋“œ์— ํŒŒ์ผ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๊ณ , ํŒŒ์ผ์˜ ๋ธ”๋ก์„ ์จ์•ผํ•  ๋…ธ๋“œ ๋ชฉ๋ก ์š”์ฒญ

  2. ๋„ค์ž„๋…ธ๋“œ๊ฐ€ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋ชฉ๋ก ๋ฐ˜ํ™˜

  3. ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ํŒŒ์ผ ์“ฐ๊ธฐ ์š”์ฒญ

    • ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๊ฐ„ ๋ณต์ œ๊ฐ€ ์ง„ํ–‰

    • ์ฒซ๋ฒˆ์งธ datanode์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค๋ฅธ datanode์— ๋ณต์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์“ฐ๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ

๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ๋ธ”๋ก์— ์ ‘๊ทผํ•œ๋‹ค๋ฉด?#

HDFS๋Š” ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ๋ธ”๋ก์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. HDFS์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ๊ธฐ ์ž‘์—…์€ ๋™์‹œ์— ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์“ฐ๊ธฐ ์ž‘์—…์€ ๋™์‹œ์— ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ๋ธ”๋ก์— ์“ฐ๊ธฐ ์ž‘์—…์„ ์‹œ๋„ํ•œ๋‹ค๋ฉด, HDFS๋Š” ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ํด๋ผ์ด์–ธํŠธ๋งŒ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด HDFS๋Š” NameNode์—์„œ Locking์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก์— ๋Œ€ํ•œ ์ƒํ˜ธ๋ฐฐ์ œ(Mutual Exclusion)๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ธ”๋ก์„ ์“ฐ๋Š” ๋™์•ˆ, ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋“ค์€ ํ•ด๋‹น ๋ธ”๋ก์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์š”์ฒญ์„ ๋Œ€๊ธฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ HDFS๋Š” ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ๋ธ”๋ก์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ์“ฐ๊ธฐ ์ž‘์—…์— ๋Œ€ํ•œ ์ƒํ˜ธ๋ฐฐ์ œ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

HDFS๊ฐ€ ๋†’์€ ๋‚ด๊ณ ์žฅ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• : ๋ฐ์ดํ„ฐ ๋ณต์ œ#

HDFS๊ฐ€ ๋†’์€ ๋‚ด๊ณ ์žฅ์„ฑ(Fault Tolerance)๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ €์žฅ๋œ ํŒŒ์ผ์˜ ๋ณต์ œ๋ณธ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 100MB์˜ ํŒŒ์ผ์ด ์ €์žฅ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ 3๊ฐœ์˜ ๋ณต์ œ๋ณธ์œผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— 300MB์˜ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

HDFS์˜ Block#

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ์ €์žฅ์ด ๋ ๊นŒ์š”? HDFS์—์„  ํŒŒ์ผ์„ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

image.png

HDFS์˜ ๊ธฐ๋ณธ์ ์ธ ๋ธ”๋ก ๋‹จ์œ„๋Š” 128 MB์ธ๋ฐ์š”, ์ด๋ ‡๊ฒŒ ํฐ ๋ธ”๋ก ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ–๊ฒŒ ๋œ ์ด์œ ๋Š” ํƒ์ƒ‰ ๋น„์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ๋ฉด ํ•˜๋“œ๋””์Šคํฌ์—์„œ ๋ธ”๋ก์˜ ์‹œ์ž‘์ ์„ ์ฐพ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Locality of HDFS#

์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ data๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” node์— job์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ ํ•ด๋‹น node๊ฐ€ ์ด๋ฏธ ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ๋ฐ”์œ ์ƒํƒœ๋ผ๋ฉด ๊ฐ™์€ ๋ ‰ ์•ˆ์—์„œ data๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” node์˜ ๊ทผ์ฒ˜์˜ node์— job์„ ํ• ๋‹นํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•จ์ด๊ณ  ์ด๊ฒƒ์ด HDFS์—์„œ์˜ locality๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ™์€ ๋…ธ๋“œ

  2. ๊ฐ™์€ ๋ž™(Rack)์˜ ๋…ธ๋“œ

  3. ๋‹ค๋ฅธ ๋ž™์˜ ๋…ธ๋“œ

์ˆœ์œผ๋กœ ํ• ๋‹น

Rack Awareness#

image.png

  • ํ•˜๋‘ก์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌ๋ฅผ ํ•  ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ž™์— ๋ธ”๋ก์ด ์ตœ์†Œ ํ•˜๋‚˜๋Š” ๋ณต์‚ฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •

    • ๋ธ”๋ก์„ ์ €์žฅํ•  ๋•Œ, 2๊ฐœ์˜ ๋ธ”๋ก์€ ๊ฐ™์€ ๋ž™์—, ๋‚˜๋จธ์ง€ ํ•˜๋‚˜์˜ ๋ธ”๋ก์€ ๋‹ค๋ฅธ ๋ž™์— ์ €์žฅํ•˜๋„๋ก ๊ตฌ์„ฑ

Block Caching#

  • ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์ค‘ ์ž์ฃผ ์ฝ๋Š” ๋ธ”๋ก์€ ๋ธ”๋ก ์บ์‹œ(block cache)๋ผ๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋ช…์‹œ์ ์œผ๋กœ ์บ์‹ฑ

  • ํŒŒ์ผ ๋‹จ์œ„๋กœ ์บ์‹ฑํ•  ์ˆ˜๋„ ์žˆ์–ด์„œ ์กฐ์ธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋“ฑ๋กํ•˜์—ฌ ์ฝ๊ธฐ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

    • ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ!

  • ์ฐธ๊ณ ์ž๋ฃŒ) ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์—์„œ์˜ ์บ์‹œ์™€ ๋น„๊ต แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-05-07 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 3.40.01.png

    ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์—์„œ์˜ ์บ์‰ฌ๋Š” CPU์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์˜ ๋ณ‘๋ชฉํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ์‚ฌ์ด์— SRAM์„ ๋‘์–ด ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋” ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„์—์„œ์˜ caching์ด๋‚˜ ํ•˜๋‘ก์—์„œ์˜ block caching์ด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์—์„œ์™€ ๊ฐ™์ด SRAM์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž„์€ ์ผ๋งฅ์ƒํ†ตํ•ฉ๋‹ˆ๋‹ค. DB ํ˜น์€ object storage, HDFS๊นŒ์ง€ ๊ฐ€์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ ค๋‘์–ด ๋” ๋นจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•จ์— ์žˆ์Šต๋‹ˆ๋‹ค.

    แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-05-07 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 3.46.51.png

HDFS ์„ธ์ดํ”„๋ชจ๋“œ#

  • HDFS์˜ ์„ธ์ดํ”„๋ชจ๋“œ(safemode)๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ

    • ์ฝ๊ธฐ ์ „์šฉ ์ƒํƒœ

    • ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์ˆ˜์ •, ๋ณต์ œ ๋ถˆ๊ฐ€๋Šฅ

  • ๊ด€๋ฆฌ์ž๊ฐ€ ์„œ๋ฒ„ ์šด์˜ ์ •๋น„๋ฅผ ์œ„ํ•ด ์„ธ์ดํ”„ ๋ชจ๋“œ๋ฅผ ์„ค์ • ํ•˜๊ฑฐ๋‚˜ ๋„ค์ž„๋…ธ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ์ •์ƒ์ ์ธ ๋™์ž‘์„ ํ•  ์ˆ˜ ์—†์„ ๋•Œ ์ž๋™์œผ๋กœ ์„ธ์ดํ”„ ๋ชจ๋“œ๋กœ ์ „ํ™˜

  • fsckย ๋ช…๋ น์œผ๋กœ HDFS์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ฒดํฌํ•˜๊ณ ,ย hdfs dfsadmin -reportย ๋ช…๋ น์œผ๋กœ ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๊ฒฐํ•œ ํ›„ ์„ธ์ดํ”„ ๋ชจ๋“œ๋ฅผ ํ•ด์ œ

ํ•˜๋‘ก ๋ช…๋ น์–ด#