JUST DO IT!

๋น…๋ฐ์ดํ„ฐ์™€ Spark ์•Œ์•„๋ณด๊ธฐ - TIL230703 ๋ณธ๋ฌธ

TIL

๋น…๋ฐ์ดํ„ฐ์™€ Spark ์•Œ์•„๋ณด๊ธฐ - TIL230703

sunhokimDev 2023. 7. 4. 18:18

๐Ÿ“š KDT WEEK 14 DAY 1 TIL

  • ๋น…๋ฐ์ดํ„ฐ
  • ํ•˜๋‘ก(Hadoop)
  • Spark

๐ŸŸฅ ๋น…๋ฐ์ดํ„ฐ

  • ์„œ๋ฒ„ ํ•œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ
  • ๊ธฐ์กด์˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ๋Š” ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ

๋น…๋ฐ์ดํ„ฐ ์˜ˆ์‹œ) ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค ๋ฐ์ดํ„ฐ(์œ„์น˜์ •๋ณด ๋“ฑ), ๊ฐ์ข… IoT ์„ผ์„œ ๋ฐ์ดํ„ฐ, ๋„คํŠธ์›Œํ‚น ๋””๋ฐ”์ด์Šค ๋“ฑ

 

๐Ÿ“ฆ ๋น…๋ฐ์ดํ„ฐ์˜ ์ฒ˜๋ฆฌ ํŠน์ง•

  • ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์†์‹ค์—†์ด ๋ณด๊ด€ํ•  ๋ฐฉ๋ฒ• : ์Šคํ† ๋ฆฌ์ง€
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•œ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ๋‹จ์ถ•
  • ๋น„๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ( ex. ์›น ๋กœ๊ทธํŒŒ์ผ)๋Š” SQL๋งŒ์œผ๋กœ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›€

 

โžก๏ธ ๋”ฐ๋ผ์„œ ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ํ•„์š”

  • ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ
  • Fault Tolerance : ์†Œ์ˆ˜์˜ ์„œ๋ฒ„๊ฐ€ ๊ณ ์žฅ๋‚˜๋„ ๋™์ž‘ํ•ด์•ผ ํ•จ
  • Scale Out(์„œ๋ฒ„ ์ถ”๊ฐ€) ํ˜•์‹์˜ ํ™•์žฅ์ด ์šฉ์ด ํ•ด์•ผํ•จ

 


 

๐ŸŸฆ ํ•˜๋‘ก(Hadoop)

 

 

 

๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์‹œ์Šคํ…œ์œผ๋กœ์จ, ๋งˆ์น˜ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์ปดํ“จํ„ฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. (์‹ค์ œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ)

๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋กœ ๋ถ„์„ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

 

ํ•˜๋‘ก์€ ํ•˜๋‘ก 2.0๋ถ€ํ„ฐ YARN์ด๋ž€ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋˜์—ˆ๋‹ค.

์ด๋”ฐ๊ฐ€ ์•Œ์•„๋ณผ Spark์€ YARN์œ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด๋กœ ์‹คํ–‰๋œ๋‹ค.

 


 

๐Ÿ—‚๏ธ HDFS - ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋‹ค์ˆ˜์˜ ์„œ๋ฒ„์— ์ €์žฅํ•œ๋‹ค.
  • ๊ฐ ๋ธ”๋ก์„ 3๊ตฐ๋ฐ์— ์ค‘๋ณต ์ €์žฅํ•˜์—ฌ Fault tolerance ๋ณด์žฅ
  • ํ•˜๋‘ก 2.0์—์„œ๋Š” ๋„ค์ž„ ๋…ธ๋“œ๋ฅผ ์ด์ค‘ํ™”(Active & Standby) ๊ตฌ์„ฑ

 


 

๐Ÿ—„๏ธ MapReduce : ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ(ํ•˜๋‘ก 1.0)

  • ํ•˜๋‚˜์˜ ์žก ํŠธ๋ž˜์ปค(Master)์™€ ๋‹ค์ˆ˜์˜ ํƒœ์Šคํฌ ํŠธ๋ž˜์ปค(Slave)๋กœ ์ด๋ฃจ์–ด์ง
  • ํƒœ์Šคํฌ ํŠธ๋ž˜์ปค์—์„œ ์ผ์„ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ
  • MarpReduce๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ ์œ ์—ฐ์„ฑ์€ ๋–จ์–ด์ง

 

๋งต๋ฆฌ๋“€์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•

 

  • ๋ฐ์ดํ„ฐ ์…‹์€ Key, Value์˜ ์ง‘ํ•ฉ(๋ถˆ๋ณ€)
  • ๋ฐ์ดํ„ฐ์˜ ์กฐ์ž‘์€ map๊ณผ reduce ๋‘ ๊ฐœ์˜ ์˜คํผ๋ ˆ์ด์…˜์œผ๋กœ๋งŒ ๊ฐ€๋Šฅ > ์œตํ†ต์„ฑ ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ ๋‚ฎ์€ ์ƒ์‚ฐ์„ฑ
  • ์…”ํ”Œ๋ง : Map์˜ ๊ฒฐ๊ณผ๋ฅผ Reduce๋‹จ์œผ๋กœ ๋ชจ์œผ๋Š” ๊ฒƒ > ์ด ๋ฐ์ดํ„ฐ ์ด๋™๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Œ
  • ๋ฐฐ์น˜ ์ž‘์—… ์ค‘์‹ฌ

 

Map๊ณผ Reduce

 

  1. Map (k,v) -> [(k', v')*]
    • ํ•˜๋‚˜์˜ Key Value ํŽ˜์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ƒˆ๋กœ์šด Key Value ํŽ˜์–ด๋กœ ๋งŒ๋“ค์–ด์คŒ(transformation)
    • ์ž…๋ ฅ : ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ฃผ์–ด์ง€๋ฉฐ HDFS ํŒŒ์ผ์—์„œ ์ž๋™์œผ๋กœ ๋„˜์–ด์˜ด
    • ์ถœ๋ ฅ : ์ž…๋ ฅ Key Value ํŽ˜์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด๋„ ๋˜๊ณ , ์—†์–ด๋„ ๋œ๋‹ค.
  2. Reduce (k' , [v1', v2', v3', v4', ...]) -> (k'', v'')
    • ์ž…๋ ฅ : ๋งต์˜ ์ถœ๋ ฅ ์ค‘ ๊ฐ™์€ Key๋ฅผ ๊ฐ–๋Š” Value ๋“ค์„ ์‹œ์Šคํ…œ์ด ๋ฌถ์–ด์„œ ๋„ฃ์–ด ๋„˜์–ด์˜ด
    • ์ถœ๋ ฅ : Key์™€ Value ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒˆ๋กœ์šด Key Value ํŽ˜์–ด๋กœ ๋ณ€ํ™˜๋˜์–ด HDFS ํŒŒ์ผ์— ์ €์žฅ๋œ๋‹ค.

 


 

๐Ÿ–ฅ๏ธ YARN : ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ(ํ•˜๋‘ก 2.0)

  • ์„ธ๋ถ€ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฒ”์šฉ ์ปดํ“จํŒ… ํ”„๋ ˆ์ž„์›(๋ฒ”์šฉ์ )
  • ํ•˜๋‚˜์˜ ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €(Master)์™€ ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ ๋งค๋‹ˆ์ €(Slave)๋กœ ์ด๋ฃจ์–ด์ง
  • Slave๋Š” ๊ทธ ์„œ๋ฒ„์— ํ•ด๋‹นํ•˜๋Š” ๋ฆฌ์†Œ์Šค(์ปจํ…Œ์ด๋„ˆ๋“ค)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• 

 

YARN์˜ ๋™์ž‘

 

 

์ถœ์ฒ˜ : InterviewBit

 

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹คํ–‰ ์ฝ”๋“œ(๋ฐ ํ™˜๊ฒฝ์ •๋ณด)๋ฅผ RM(Resource Manager)์—๊ฒŒ ๋ณด๋ƒ„
  2. RM์ด NM(Node Manager)๋ฅผ ํ†ตํ•ด AM(Application Master)๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    • YARN Application๋งˆ๋‹ค ํ•˜๋‚˜์˜ AM์ด ์ƒ์„ฑ๋œ๋‹ค.
  3. AM์ด RM์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค(์ปจํ…Œ์ด๋„ˆ)๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.
  4. AM์— NM์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ๋ฐ›์•„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.(ํƒœ์Šคํฌ)
  5. ํƒœ์Šคํฌ๋“ค์€ ์ž์‹ ์˜ ์ƒํ™ฉ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ AM์—๊ฒŒ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.(heartbeat)
    • ํƒœ์Šคํฌ๊ฐ€ ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ๋ณด๊ณ ๊ฐ€ ์˜ค๋žœ ์‹œ๊ฐ„ ์—†์œผ๋ฉด ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋กœ ์žฌ์‹คํ–‰

 


 

3๏ธโƒฃ ํ•˜๋‘ก 3.0

  • YARN 2.0์„ ์‚ฌ์šฉ
    • YARN ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน(ํ”Œ๋กœ์šฐ)๋กœ ๋‚˜๋ˆ„์–ด์„œ ํšจ์œจ์ ์ธ ์ž์› ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ์ œ๊ณต
    • ํƒ€์ž„๋ผ์ธ ์„œ๋ฒ„์—์„œ HBase๋ฅผ ๊ธฐ๋ณธ ์Šคํ† ๋ฆฌ์ง€๋กœ ์‚ฌ์šฉ
  • ๋‹ค์ˆ˜์˜ ์Šคํƒ ๋ฐ”์ด ๋„ค์ž„๋„๋ฅด๋ฅผ ์ง€์›
  • HDFS, S3, Azure Storage ์ด์™ธ์—๋„ Azure Data Lake Storage ๋“ฑ์„ ์ง€์›

 


 

Data Skew

๊ฐ ํƒœ์Šคํฌ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ๋ถˆ๊ท ํ˜•์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ

Mapper์—์„œ Reducer๋กœ ์˜ค๋Š” ๊ณผ์ •์—์„œ ํŠน์ • ํ‚ค์˜ ๊ฐ’์ด ํŠนํžˆ๋‚˜ ๋งŽ๋‹ค๋ฉด ๋ฐœ์ƒ

๋น…๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ์—๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ณ ์ƒํ•˜๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋งต๋ฆฌ๋“€์Šค๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—๋„ ๋ชจ๋‘ ์กด์žฌํ•œ๋‹ค.

 

MapReduce ๋Œ€์•ˆ

๋” ๋ฒ”์šฉ์ ์ธ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›๋“ค์˜ ๋“ฑ์žฅ > YARN, Spark

Hive, Presto

 


 

๐ŸŸฉ Spark

 

 

ํ•˜๋‘ก์˜ ๋’ค๋ฅผ ์ž‡๋Š” 2์„ธ๋Œ€ ๋น…๋ฐ์ดํ„ฐ ๊ธฐ์ˆ 

๋ถ„์‚ฐ ํ™˜๊ฒฝ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ์œผ๋กœ์จ, ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

Spark ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ ์‚ฌ์šฉ ์˜ˆ)

  • 1) ๋Œ€์šฉ๋Ÿ‰ ๋น„๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ (ETL or ELT)
  • 2) ML ๋ชจ๋ธ์— ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ํ”ผ์ณ ์ฒ˜๋ฆฌ (๋ฐฐ์น˜ or ์ŠคํŠธ๋ฆฌ๋ฐ ์ฒ˜๋ฆฌ)

 

๐Ÿ†š Spark vs MapReduce

  1. Spark์€ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜(๋ถ€์กฑํ•˜๋ฉด ๋””์Šคํฌ ์‚ฌ์šฉ), MapReduce์€ ๋””์Šคํฌ ๊ธฐ๋ฐ˜
  2. MapReduce๋Š” ํ•˜๋‘ก(YARN)์œ„์—์„œ๋งŒ ๋™์ž‘ํ•˜์ง€๋งŒ, Spark์€ ๋‹ค๋ฅธ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ™˜๊ฒฝ ์ง€์›(K8s, Mesos ๋“ฑ)
  3. MapReduce๋Š” Key Value ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋งŒ ์ง€์›ํ•˜์ง€๋งŒ, Spark์€ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„๊ณผ ๋น„์Šทํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ง€์›
  4. Spark์€ ๋˜ํ•œ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, SQL, ๋จธ์‹  ๋Ÿฌ๋‹, ๊ทธ๋ž˜ํ”„ ๋ถ„์„ ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ง€์›

 


 

๐Ÿ“ฒ Spark ํ”„๋กœ๊ทธ๋ž˜๋ฐ API

  • RDD (Resilient Distributed Dataset) : ๋กœ์šฐ๋ ˆ๋ฒจ API, ์ฝ”๋”ฉ ๋ณต์žก๋„ ์ฆ๊ฐ€
  • DataFrame & Dataset(ํŒ๋‹ค์Šค์™€ ํก์‚ฌ) : ํ•˜์ด๋ ˆ๋ฒจ API๋กœ, ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ + ML์— ์œ ๋ฆฌ
  • Spark SQL : ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์— ์œ ๋ฆฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ SQL ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

 

Spark ML

  • ๋จธ์‹ ๋Ÿฌ๋‹ ๊ด€๋ จ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๊ตฌ์„ฑ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„๊ณผ SparkSQL๋“ฑ์„ ์ด์šฉํ•ด ์ „์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ML Pipeline์„ ํ†ตํ•ด ๋ชจ๋ธ ๋นŒ๋”ฉ ์ž๋™ํ™”ํ•˜๊ณ , MLflow๋กœ ๋ชจ๋ธ ๊ด€๋ฆฌ ๋ฐ ์„œ๋น™๋„ ๊ฐ€๋Šฅ

* spark.mlib๋Š” RDD ๊ธฐ๋ฐ˜์ด๊ณ  spark.ml์€ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๊ธฐ๋ฐ˜์ด์ง€๋งŒ, RDD์€ ๋”์ด์ƒ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ spark.ml ์‚ฌ์šฉ

 


 

๐Ÿ—๏ธ Spark ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ(YARN ๊ธฐ์ค€)

 

Spark Cluster : ํ•˜๋‚˜์˜ Driver์— ์˜ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ Executor๊ฐ€ ์ œ์–ด๋˜๋Š” ํ˜•ํƒœ

 

Driver (YARN์˜ Appllication Master)

  • ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์˜ ๋งˆ์Šคํ„ฐ ์—ญํ•  ์ˆ˜ํ–‰
  • ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์‹ค์ œ Spark ํƒœ์Šคํฌ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ Spark Cluster์—์„œ ์‹คํ–‰
    • client ๋ชจ๋“œ : ๊ฐœ๋ฐœorํ•™์Šตorํ…Œ์ŠคํŠธ ๋“ฑ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ
      • Drvier๊ฐ€ Spark Cluster ๋ฐ–์—์„œ Executor๋ฅผ ์ œ์–ดํ•˜๋ฉฐ, ๋…ธํŠธ๋ถ์ด๋‚˜ Spark Shell ๋“ฑ ์‚ฌ์šฉ
    • cluster ๋ชจ๋“œ : ๊ฐœ๋ฐœ์ด ๋๋‚œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ํ”„๋กœ๋•์…˜ ์šด์˜์— ์‚ฌ์šฉํ•  ๋•Œ
      • Driver๊ฐ€ Spark Cluster ์•ˆ์—์„œ Executor๋ฅผ ์ œ์–ดํ•˜๋ฉฐ, spark-submit์„ ์‚ฌ์šฉ

 

Client ๋ชจ๋“œ์™€ Cluster ๋ชจ๋“œ

 

Executor(YARN์˜ ์ปจํ…Œ์ด๋„ˆ) : ์‹ค์ œ ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์—ญํ•  ์ˆ˜ํ–‰

 


 

local[n] : YARN์ด ์•„๋‹Œ ๋กœ์ปฌ์˜ ๊ฒฝ์šฐ

  • ๊ฐœ๋ฐœ/ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ์จ Spark Shell, IDE, ๋…ธํŠธ๋ถ ๋“ฑ์„ ์ด์šฉํ•จ
  • Local JVM์•ˆ์— ํ•˜๋‚˜์˜ Driver๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Executor์„ ์ œ์–ดํ•˜๋Š” ํ˜•ํƒœ
  • n์€ ํ•˜๋‚˜์˜ JVM ์•ˆ์— n๊ฐœ์˜ Executor์˜ ์ˆ˜๊ฐ€ ๋œ๋‹ค. (n๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ) (*์ด๋ฉด ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ์ฝ”์–ด์‚ฌ์šฉ)