Hamutaro - Hamtaro 4

Infra/Apache

[Apache] Apache Spark์˜ ๊ฐœ๋…

carsumin 2025. 2. 20. 20:39
Apache Spark ๋ž€?
  • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ”„๋ ˆ์ž„์›Œํฌ
  • ์—ฌ๋Ÿฌ๋Œ€์˜ ์ปดํ“จํ„ฐ๋ฅผ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์—ฐ์‚ฐ ์žฅ๋น„์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋น…๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ถ„์„ํ•˜๊ณ  ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

 

Apache Spark ํ•ต์‹ฌ ๊ฐœ๋…
  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ (Distributed Computing)
    • Spark๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋กœ ๋‚˜๋ˆ ์„œ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ผ์„œ๋ฒ„๋ณด๋‹ค ๋น ๋ฅธ ์†๋„๋กœ ๋ถ„์„์ด ๊ฐ€๋Šฅ
  • ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ (In-Memory Computing)
    • Spark๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ์ €์žฅํ•œ ์ฑ„๋กœ ์—ฐ์‚ฐ์„ ์ด์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฆ„
  • RDD (Resilient Distributed Dataset)
    • Spark์˜ ํ•ต์‹ฌ ์ž๋ฃŒ๊ตฌ์กฐ
    • RDD๋Š” ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ถˆ๋ณ€ํ•œ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ

 

Apache Spark ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ
  • Spark Core - RDD ๊ธฐ๋ฐ˜์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ ๊ธฐ๋Šฅ (map, filter, reduce ๋“ฑ)
  • Spark SQL - SQL ๋ฌธ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋“ˆ
  • Spark Streaming - ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ (Kafka ๋“ฑ๊ณผ ์—ฐ๊ณ„)
  • MLlib - ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (๋ถ„๋ฅ˜, ํšŒ๊ท€, ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋“ฑ)
  • GraphX - ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์šฉ API

 

Spark ์‹คํ–‰๊ตฌ์กฐ
Driver Program
 โ”œโ”€โ”€ SparkContext (์ž‘์—… ์ง€ํœ˜์ž)
 โ””โ”€โ”€ Cluster Manager (์ž์› ํ• ๋‹น)
       โ”œโ”€โ”€ Worker Nodes
       โ”‚    โ”œโ”€โ”€ Executor (์‹ค์ œ ์ž‘์—… ์ˆ˜ํ–‰)
       โ”‚    โ””โ”€โ”€ Task (์‹คํ–‰ ๋‹จ์œ„)
  • Driver Program : Spark ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘์  (ex : main() ํ•จ์ˆ˜)
  • Cluster Manager : ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ž์›์„ ๊ด€๋ฆฌ (Kebernetes ๋“ฑ)
  • Executor : ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค
  • Task : Executor ์—์„œ ์‹คํ–‰๋˜๋Š” ์„ธ๋ถ€ ์—ฐ์‚ฐ ๋‹จ์œ„

 

Apache Spark ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์•ผ
  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (ETL)
  • ๋ฐ์ดํ„ฐ ๋ถ„์„
  • ๋จธ์‹ ๋Ÿฌ๋‹ ํŒŒ์ดํ”„๋ผ์ธ
  • ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ถ„์„
  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์—ฐ๋™

 

Spark vs Hadoop

 

๊ตฌ๋ถ„ Apache Spark Hadoop MapReduce
์ฒ˜๋ฆฌ์†๋„ ๋งค์šฐ ๋น ๋ฆ„ (In-Memory) ๋А๋ฆผ (Disk I/O ์ค‘์‹ฌ)
API ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์  (Python, Java ์ง€์›) ์ƒ๋Œ€์ ์œผ๋กœ ๋ณต์žก
์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ (Streaming) ๋ถˆ๊ฐ€๋Šฅ
๋จธ์‹ ๋Ÿฌ๋‹ ์ง€์› ๋‚ด์žฅ (MLlib) ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•„์š”
์žฅ์•  ๋ณต๊ตฌ ์ž๋™ (RDD Lineage) ์ˆ˜๋™ ์„ค์ • ํ•„์š”

 

 

 

'Infra > Apache' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Apache] Apache Kafka์˜ ๊ฐœ๋…  (2) 2025.02.25
[Apache] Apache Airflow์˜ ๊ฐœ๋…  (0) 2025.02.20