๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (59)

๐Ÿฅ

Spark, Trino on kubernetes

Spark on KubernetesSpark์—์„œ๋Š” cluster manager๋กœ kubernetes๋ฅผ ์ง€์›ํ•œ๋‹ค(2.3 ๋ฒ„์ „๋ถ€ํ„ฐ). kubernetes๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ spark๊ฐ€ ์‹คํ–‰๋˜๊ณ , ๋„ค์ดํ‹ฐ๋ธŒ kubernetes ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์žฅ์ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ HPA๋ฅผ ์‚ฌ์šฉํ•ด executor ์ˆ˜๋ฅผ ์ž๋ฉ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.์ž‘์—… ๋ฐ ๋ฐฐํฌ ๊ด€๋ฆฌ ์œ ํ˜„์„ฑ๋‹จ์ ์ดˆ๊ธฐ ์„ค์ • ๋ณต์žก์„ฑkubernetes ์Šค์ผ€์ค„๋ง ๋ฌธ์ œ: third party scheduler๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จkubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ์— spark ์„ฑ๋Šฅ ๋ฐ ๊ฐ€์šฉ์„ฑ์— ์˜ํ–ฅ์„ ๋ฐ›์Œ๋ณต์žกํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น… - spark ์ž์ฒด ๋กœ๊ทธ, pod ๋กœ๊ทธ, ์‹œ์Šคํ…œ ๋กœ๊ทธ, ์ด๋ฒคํŠธ ๋กœ๊ทธ ๋“ฑ...data locality - kubernetes์—์„œ๋Š” s..

์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น… ์‹œ์Šคํ…œ (EFK stack)

์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น…์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋ฉด ๊ฐ ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ•œ ๋กœ๊ทธ ํŒŒ์ผ๋“ค์€ ํŒŒํŽธํ™”๋˜์–ด ๊ฐ๊ฐ ์ €์žฅ๋œ๋‹ค.์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ณ„ ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๊ทธ๋ฅผ ์—ฐ๊ฒฐ์ง€์–ด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค.๋”ฐ๋ผ์„œ ๋กœ๊ทธ์˜ ์ถœ์ฒ˜์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ์ €์žฅ, ๋ถ„์„ํ•ด์•ผ ํ•˜๋ฉฐ, ์„œ๋น„์Šค ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์žฅ์ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋‚˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒ์„ฑ๋œ ๋กœ๊ทธ๋ฅผ ํ•œ ๊ณณ์— ์ˆ˜์ง‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ํ•œ ๋ฒˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.๋ชจ๋“  ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ €์žฅํ•˜๋ฏ€๋กœ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค. (๋ณดํ†ต ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ DB๋‚˜ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์‚ฌ์šฉ)์ค‘์•™์—์„œ ๋กœ๊ทธ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ถ”์ ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง€๊ณ , ๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋œ๋‹ค.๋‹จ์ ๋‹จ์ผ..

๊ธฐํƒ€ 2024. 10. 9. 10:38
Apache Iceberg ์‚ฌ์šฉ ์‚ฌ๋ก€ (LINE Data Platform์—์„œ Apache Iceberg ๋„์ž…)

https://www.youtube.com/watch?v=7y9gNwqLNtU์œ„ ๋™์˜์ƒ ์ •๋ฆฌํ•จ hive -> iceberg๋กœ ๋ณ€๊ฒฝํ•œ ์‚ฌ๋ก€ Line ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์˜ ๊ธฐ์กด ๋ฐฉ์‹๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์˜ ํŠน์ง•๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ/์ข…๋ฅ˜/ํ™œ์šฉ ๊ทœ๋ชจ๊ฐ€ ํฌ๋‹ค๋จธ์‹  ์ˆ˜: 5000 ๋Œ€+๋ฐ์ดํ„ฐ ํฌ๊ธฐ: 290 PB+ํ•˜์ด๋ธŒ ํ…Œ์ด๋ธ” ์ˆ˜: 4๋งŒ๊ฐœ (๋ชจ๋‘ external table)log ingestion rate: ์ดˆ๋‹น 17.5M+ํ•˜๋ฃจ์— ๊ตฌ๋™๋˜๋Š” job ์ˆ˜: 15๋งŒ+ํ”Œ๋žซํผ ์‚ฌ์šฉ์ž ์ˆ˜: 700+ Query ProcessingSQL ๊ธฐ๋ฐ˜, spark, hive, trino, flink๋ฅผ ๋ถ„์‚ฐ sql ์ฟผ๋ฆฌ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉ๋ฐ์ดํ„ฐํŒŒ์ผ์ด ์–ด๋””์— ์žˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์ฝ๊ณ  ์“ธ์ˆ˜์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด ํ•„์š”์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ์ง€๋Š” ํ…Œ์ด๋ธ” ํฌ๋งท์— ์˜ํ•ด ์ •์˜๋จ *..

[Spark] ์ŠคํŒŒํฌ ์ŠคํŠธ๋ฆฌ๋ฐ์˜ ์ด๋ฒคํŠธ ์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์™€ Watermark

์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ์—์„œ์˜ ์ง‘๊ณ„๋Š” ๋ณดํ†ต ํ˜„์žฌ์‹œ๊ฐ„๋ถ€ํ„ฐ T์‹œ๊ฐ„ ์ „๊นŒ์ง€ ์ง‘๊ณ„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์˜ˆ๋ฅผ๋“ค์–ด ์ง€๋‚œ 15์ดˆ ๋™์•ˆ์˜ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ํ•˜๋ฉด 15์ดˆ์˜ ์‹œ๊ฐ„์€ ์–ธ์ œ๋ถ€ํ„ฐ ์–ธ์ œ๊นŒ์ง€์ธ์ง€ ์˜๋ฌธ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์—์„œ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ๊ฐ„์€ ๋‹ค์–‘ํ•œ ๊ธฐ์ค€์ด ์žˆ๋‹ค. ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์—์„œ์˜ ์‹œ๊ฐ„ ๊ด€์  ์ด๋ฒคํŠธ ์‹œ๊ฐ„ (event time) ๋ฐ์ดํ„ฐ ์˜์กด์ ์ธ ํƒ€์ž„์Šคํ…œํ”„๋กœ, ๋ฐ์ดํ„ฐ ๋‚ด์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ฐœ์ƒ ์‹œ๊ฐ„์ด๋‹ค. ๋ฐ์ดํ„ฐ ์˜์กด์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ๊ฐ’์„ ํƒ€์ž„์Šคํƒฌํ”„๋กœ ๋„ฃ์„ ๊ฒƒ์ธ์ง€๋Š” ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ ์ฃผ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. windowing ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ์ ์ ˆํ•œ ์‹œ๊ฐ„ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ˆ˜์ง‘ ์‹œ๊ฐ„ (ingestion time) ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ์—”์ง„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์ˆ˜์ง‘๋œ, ์ฆ‰ ๋“ค์–ด์˜จ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฒ˜๋ฆฌ ์‹œ๊ฐ„..

๋ฐ์ดํ„ฐ/Spark 2024. 4. 21. 21:30