Resilient Distributed Dataset

1 minute read

What is Resilient Distributed Dataset?

Resilient Distributed Dataset(์ดํ•˜ RDD)์€ Spark์—์„œ ์‚ฌ์šฉ๋˜๋Š” object๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  1. Resilient and Distributed ๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก Cluster Manager๊ฐ€ ์—ฌ๋Ÿฌ cluster์— task๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋งŒ์•ฝ ํ•œ cluster๊ฐ€ task๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค ํ•˜๋”๋ผ๋„ ํ•ด๋‹น task๋Š” ๋‹ค๋ฅธ cluster๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ก ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ Spark ๋‚ด์—์„œ ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ๋”ฐ๋กœ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.

  2. Dataset ๋ฐ์ดํ„ฐ์…‹์„ ํ•˜๋‚˜์˜ object๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Spark๋Š” ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํŠนํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํฐ ๋ฐ์ดํ„ฐ์…‹์ด ํ•˜๋‚˜์˜ object๋กœ ํ‘œํ˜„๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

SparkContext

SparkContext, ์ฆ‰ SC๋Š” RDD๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์‹œ์ž‘์ ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, RDD๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์ „์— SparkContext๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

Creating RDD

RDD๋Š” ๋‹ค์–‘ํ•œ format์œผ๋กœ ๋œ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ format๋“ค์ด ์žˆ๋‹ค:

  1. Text file
  2. Hive
  3. JDBC
  4. Cassandra
  5. HBase
  6. Elasticsearch
  7. JSON

Transforming RDD

RDD object๋ฅผ ์ƒ์„ฑํ•˜์˜€์œผ๋ฉด ํ•ด๋‹น object์— ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Python์ด๋‚˜ Java์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ๊ณผ ๋น„์Šทํ•˜๋ฏ€๋กœ ๊ธˆ๋ฐฉ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  1. map: ํ•จ์ˆ˜๋ฅผ RDD์˜ ์š”์†Œ๋“ค์— ์ผ๋Œ€์ผ ์ ์šฉํ•œ๋‹ค.
  2. flatmap: ํ•จ์ˆ˜๋ฅผ RDD์˜ ์š”์†Œ๋“ค์— ์ผ๋Œ€๋‹ค ์ ์šฉํ•œ๋‹ค.
  3. filter
  4. distinct
  5. sample
  6. union, intersection, subtract, cartesian

RDD Actions

RDD์— ๋Œ€์–‘ํ•œ action์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” action์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  1. collect
  2. count
  3. countByValue
  4. take
  5. top
  6. reduce

Key-Value RDD

RDD๋Š” ํ‚ค-๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์—ฐ์‚ฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋•Œ, RDD์˜ ๊ฐ ๋ผ์ธ์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด ํ‚ค ๊ฐ’์ด ๋œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค-๊ฐ’ ์—ฐ์‚ฐ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  1. mapValues: Value ๊ฐ’์— ๋ช…์‹œ๋œ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์—ฐ์‚ฐํ•œ๋‹ค.
  2. reduceByKey: ๊ฐ™์€ ํ‚ค๋ผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ ์šฉํ•œ๋‹ค.
  3. SortByKey: ํ‚ค ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

Comments