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

[BigData] Spark(์ŠคํŒŒํฌ)

jjingle 2024. 1. 5. 11:26

Spark ?

UC Berkely AMPLab์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ
  • Disk ๊ธฐ๋ฐ˜์˜ Hadoop ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ฐœ์„ ํ•˜์—ฌ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ž„
  • ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์šฉ๋Ÿ‰ ๊ณ ์† ์ฒ˜๋ฆฌ ์—”์ง„
  • RDD ๋ฐฉ์‹์˜ ์ธ๋ฉ”๋ชจ๋ฆฌํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ์ œ๊ณต
  • ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๋ชจ๋‘ ์ง€์›
  • SQL ๋ฐฉ์‹์˜ ์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฟ ์•„๋‹ˆ๋ผ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ชจ๋‘ ์ง€์›

 

Spark ์„ค๊ณ„ ์ฒ ํ•™

๊ณ ์†์ฒ˜๋ฆฌ : ์ธ๋ฉ”๋ชจ๋ฆฌํ˜• ์ž๋ฃŒ๊ตฌ์กฐ

  1. ๊ณ ์†์ฒ˜๋ฆฌ
    • Hadoop์—์„œ์˜ ๋””์Šคํฌ I/O๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ์ง€์—ฐ์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•ด ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋Œ€ํญ ๋†’์ž„
  2. ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—”์ง„
    • SQL ๋ฐ์ดํ„ฐ, ์ŠคํŠธ๋ฆผ, ๋จธ์‹ ๋Ÿฌ๋‹, ๊ทธ๋ž˜ํ”„ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„
    • ๊ธฐ์กด ๋ณต์žกํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์—ฐ๋™ ๋ฌธ์ œ ๊ฐœ์„ 
  3. ๊ฒฐํ•จ ํ—ˆ์šฉ์„ฑ
    • ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ๊ฒฐํ•จ ๋ฐœ์ƒ ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„
    • ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™˜ ์ด๋ ฅ์ด ์ถ”์  ๋˜๋„๋ก ์„ค๊ณ„ํ•จ์œผ๋กœ์จ, ์ฒ˜๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅ

 

Spark ๊ตฌ์กฐ

Master/Worker ๊ตฌ์กฐ์˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ

  • Spark application  (์ŠคํŒŒํฌ์—์„œ ์ˆ˜ํ–‰ํ•  ์ „์ฒด ์ž‘์—…์œผ๋กœ Job์ด๋ผ๊ณ  ๋ถ€๋ฆ„)
    • Driver 
      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด  Spark Context๋ฅผ ์ƒ์„ฑ
      • Job์„ Task๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ Task ๋ฅผ ํ•˜์œ„ ๋…ธ๋“œ์— ํ• ๋‹น
    • Executor
      • ๊ฐ ๋…ธ๋“œ์—์„œ ํ• ๋‹น ๋ฐ›์€ ์ž‘์—…์„  Task ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ  Driver์— ์ „์†ก
    • Task
      • ๋‚˜๋ˆ„์–ด์ง„ ์ž‘์—… ๋‹จ์œ„
      • ์‹ค์ œ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰

 

  • Cluster Manager
    • YARN : ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ ๋งค๋‹ˆ์ €
    • MESOS : ๋™์  ๋ฆฌ์†Œ์Šค ๊ณต์œ  ๋ฐ ๊ฒฉ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์†Œ์Šค์˜ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌ
    • StandardAlone : Spark ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋งค๋‹ˆ์ €

 

Spark Application ์ˆ˜ํ–‰ ๊ณผ์ •

  1. ์‚ฌ์šฉ์ž๊ฐ€ Spark Application์„ ์ œ์ถœ(spark-submit)
  2. Spark Driver๊ฐ€ main()์„ ์‹คํ–‰ํ•˜๋ฉฐ, Spark Context๋ฅผ ์ƒ์„ฑ
  3. Spark Context๊ฐ€ Cluster Manager์™€ ์—ฐ๊ฒฐ
  4. Spark Driver๊ฐ€ ์œ ์ €๊ฐ€ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ Cluster Manager๋กœ ์š”์ฒญ