๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ปTech/๐Ÿ˜hadoop

[Hadoop] Erasure Coding ์ ์šฉ ๋ฐฉ๋ฒ•

by _viper_ 2019. 9. 20.
๋ฐ˜์‘ํ˜•

์ด๋ ˆ์ด์ € ์ฝ”๋”ฉ (Erasure Coding)

  • ์Šคํ† ๋ฆฌ์ง€์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ฐฉ์‹
  • ์ด๋ ˆ์ด์ € ์ฝ”๋”ฉ์€ ์ด๋ ˆ์ด์ € ์ฝ”๋“œ(Erasure Code)๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์†์‹ค์‹œ ๋””์ฝ”๋”ฉ ๊ณผ์ •์„ ๊ฑฐ์ณ ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜
  • ๋ฐ์ดํ„ฐ ์†์‹ค์‹œ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฒ•์ผ๋ฟ ๋ฐ์ดํ„ฐ ๋ฐฑ์—…์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์— ์ฃผ์˜
  • ์ด๋ ˆ์ด์ € ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ ๊ณผ์ •
    • ๋ฐ์ดํ„ฐ ์›๋ณธ์„ n๋“ฑ๋ถ„ํ•˜์—ฌ ๋‚˜๋ˆ” > ์—ฐ์‚ฐ๊ณผ์ •(์ธ์ฝ”๋”ฉ)์„ ํ†ตํ•ด k๊ฐœ ํŒจ๋ฆฌํ‹ฐ ์ƒ์„ฑ > (์ผ๋ถ€ ๋ฐ์ดํ„ฐ ์†์‹ค) > n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋””์ฝ”๋”ฉ์„ ํ†ตํ•ด ์›๋ณธ ๋ณต๊ตฌ

HDFS Erasure Coding

  • HDFS : ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ N๊ฐœ์˜ ๋ธ”๋ก์œผ๋กœ ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ
  • Fualt-tolerance : ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์ด๋ฃจ๊ณ  ์žˆ๋Š” N๊ฐœ์˜ ๋ธ”๋ก ์ค‘ ๋ช‡๊ฐœ๊ฐ€ ์œ ์‹ค๋˜๋”๋ผ๋„ ํŒŒ์ผ์˜ ์ ‘๊ทผ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • 2.x ๋ฒ„์ „ : ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋””์Šคํฌ์— 3๊ฐœ์˜ ๋ธ”๋ก์„ ๋งŒ๋“ค์–ด ๋ณด๊ด€ (ํŒŒ์ผ 1๊ฐœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ 3๋ฐฐ์˜ ์šฉ๋Ÿ‰์„ ํ•„์š”)
  • 3.x ๋ฒ„์ „ : Erasure Coding์€ ํŒŒ์ผ์„ N๊ฐœ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋ฉด์„œ N์˜ ์ ˆ๋ฐ˜์ธ M๊ฐœ์˜ Parity ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜์—ฌ Fault-tolerance๋ฅผ ๋ณด์žฅ
  • Raid์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Reed-Solomon ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ

 

1. ec policy ๋ฆฌ์ŠคํŠธ ํ™•์ธ

hdfs ec -listPolicies

 

2. policy enable

hdfs ec -enablePolicy -policy RS-6-3-1024k

 

3. ํŠน์ • path์— policy ์ ์šฉ

hdfs ec -setPolicy -path [path] -policy RS-6-3-1024k

 

์ฐธ์กฐ) ์ ์šฉ๋œ path์— erasur coding ์ œ๊ฑฐ (policy์ œ๊ฑฐ)

hdfs ec -unsetPolicy -path [path]

 

4. ์ ์šฉ๋œ ec policy ํ™•์ธ

hdfs ec -getPolicy -path [path]