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

[BigData] Spark ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, RDD

jjingle 2024. 1. 6. 02:05

RDD(Resilient Distributed Dataset) ?

์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
์ตœ์ดˆ์— Disk์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ ๋’ค, ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฐ์‚ฐ(operation)์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์—ฐ์‚ฐ ํ•จ์ˆ˜ ์ œ๊ณต

 

 

RDD ํŠน์„ฑ

  1. In-memory Computation
    • RDD์—์„œ ์ œ๊ณตํ•˜๋Š” operation์€ ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ , ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์ƒ์ฃผ์‹œํ‚ด
    • Transformations : RDD์—์„œ ๋‹ค๋ฅธ RDD๋ฅผ ๋งŒ๋“œ๋Š” ๋ณ€ํ˜• ์—ฐ์‚ฐ
    • Actions : RDD์˜ ์ตœ์ข… ์—ฐ์‚ฐ์œผ๋กœ RDD์—์„œ RDD๊ฐ€ ์•„๋‹Œ data๋กœ ์ €์žฅ
  2. Immutable
    • RDD๋Š” ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด์ง€๋ฉด ๋‚ด์šฉ ๋ณ€ํ˜•์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ
  3. Lineage
    • RDD์˜ transformation์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  RDD๋Š” lineage์— ๊ธฐ๋ก๋˜์–ด RDD ์ด๋ ฅ์ด ์ €์žฅ๋จ
    • ๋ฉ”๋ชจ๋ฆฌ ์—ฐ์‚ฐ์˜ ํŠน์„ฑ์ƒ ์—ฐ์‚ฐ ๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•˜๋Š” fault๋กœ ์ธํ•ด ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ์œ ์‹ค๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•จ
    • ์—ฐ์‚ฐ ์ค‘ fault๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ €์žฅํ•ด๋†“์€ lineage๋ฅผ ๋ณต๊ตฌํ•˜์—ฌ ์—ฐ์‚ฐ์„ ๊ณ„์†์ ์œผ๋กœ ์ด์–ด๋‚˜๊ฐ
    • lineage๋Š” spark driver์— ์ €์žฅํ•จ
  4. Lazy-Execution
    • RDD๋Š” action์ด ์ˆ˜ํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€ ์‹ค์ œ๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋‹ค๊ฐ€ action operation์„ ๋งŒ๋‚˜๋ฉด ์‹ค์ œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰
    • RDD lineage๋ฅผ ํ™•์ธํ•˜์—ฌ ์ „์ฒด ์—ฐ์‚ฐ์„ ๋ฏธ๋ฆฌ ๊ณ ๋ คํ•œ ํ›„ ์ตœ์ ํ™”๋œ ์ž‘์—… ๋ถ„์‚ฐ์ด ๊ฐ€๋Šฅ