์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ์์ง๋์ด์๊ฒ ๋ฐฐ์ฐ๋ ํ์ด์ฌ ์ํ์น ์คํํฌ
์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ์ํํธ์จ์ด ์์ง๋์ด์๊ฒ ๋ฐฐ์ฐ๋ ๋น ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ & ํ์ด์ฌ์ ์ด์ฉํด ์ํ์น ์คํํฌ๋ก ๋น ๋ฐ์ดํฐ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ฒ์ ๊ฐ๋ฅด์ณ ๋๋ฆฝ๋๋ค. ํ์ฌ 14๋ ์ฐจ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ก ์น ์ดํ๋ฆฌ์ผ์ด์ , ๋น ๋ฐ์ดํ ๊ทธ๋ฆฌ๊ณ SRE & ๋ฐ๋ธ์ต์ค๊น์ง ํ์ด์ฌ์ผ๋ก ๋ค ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. ํ์ด์ฌ์ ์ด์ฉํด, ๋น ๋ฐ์ดํฐ ์ง๊ตฐ์์ ๊ผญ ์์์ผํ๋ ์ํ์น ์คํํฌ์ ๋ํด์ ์ฝ๊ณ ๊น๊ฒ ๋ฐฐ์ธ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๋ ๋์น์ง ๋ง์ธ์!
์๊ฐ์ 832๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ๋ฏธํด๊ฒฐ
databricks์ cluster ๋ฉ๋ด๊ฐ ์์ต๋๋ค.
Databricks ํ๋ซํผ์์ ์๋ฌด๋ฆฌ ์ฐพ์๋ด๋ cluster์์ฑํ๋ ๋ฉ๋ด๊ฐ ์๋ค์ ใ กใ ก;
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkicebergBruce.K
ใป
17์๊ฐ ์
0
12
2
- ํด๊ฒฐ
์ฃผํผํฐ ์ฌ์ฉ ๋ฐ ๋์ปค ์ค์น
ํผ์ ํด๊ฒฐํด๋ณด๋ ค๊ณ ํ๋๋ฐ ์ ํ๊ณ ์๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ด์์.. ๊ฐ์ฌ๋์ด ํฐ๋ฏธ๋์ docker run -it --rm -p 8888:8888 -v /Users/seungjoonlee/git/pyspark:/ho
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkiceberg์์ฐ
ใป
13์ผ ์
0
47
2
- ํด๊ฒฐ
S3 ํด๋ ๊ตฌ์กฐ์ ๋ฐ๋ฅธ Static Partition Pruning, DPP ์ง๋ฌธ
์๋ ํ์ธ์.Static Partition Pruning์ด ๊ฐ๋ฅํ ํด๋ ๊ตฌ์กฐ์ ๋ํด์ ๊ถ๊ธํ ์ ์ด ์์ต๋๋ค.Hive-Style(/year=2024
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkicebergsgjeong1108
ใป
4๋ฌ ์
0
66
2
- ํด๊ฒฐ
broadcast Join๊ณผ boradcast + UDF ์ฐจ์ด
์๋ ํ์ธ์!์ข์ ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค!๊ฐ์๋ฅผ ๋ฃ๋ ์ค ๊ถ๊ธํ๊ฒ ์๊ฒจ์ ์ง๋ฌธ ๋จ๊น๋๋คUDF + broadcast ๋์ ์ ์๋
๋น ๋ฐ์ดํฐapache-sparksgjeong1108
ใป
5๋ฌ ์
0
51
2
- ํด๊ฒฐ
append ๋ชจ๋ ์ฌ์ฉ ์ ์ง๊ณ
writeStream ์์ append ๋ชจ๋ ์ฌ์ฉ ์ ์ง์๋์ง ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ์ จ๋๋ฐ ๊ทธ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ฉด์ ์ง๊ณ๋ฅผ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ํด์ผ ํ๋์?
apache-spark๊ถ์งํ
ใป
5๋ฌ ์
0
55
2
- ํด๊ฒฐ
CDC ๊ธฐ๋ฐ ์คํํฌ ์ํคํ ์ฒ ๊ตฌํ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํฉ๋๋ค.
ํ์ฌ RDS์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ AWS DMS๋ฅผ ํ์ฉํด Parquet ํฌ๋งท์ผ๋ก ๋ณํํ์ฌ S3์ ์ ์ฅํ ๋ค, EMR(Apache Spark)์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ถ์/์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.<
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkicebergowen4
ใป
6๋ฌ ์
0
90
2
- ํด๊ฒฐ
BroadCast ์ง์ ๊ฐ๋ฅ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์
์๋ ํ์ธ์.์ต๊ทผ๋ถํฐ Spark ๊ฐ์๋ฅผ ๋ฃ๊ณ ์๋๋ฐ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Broadcast์ ๋ํด์ ์ค๋ช ์ ํด์ฃผ์ จ๋๋ฐ Join ๋์์ด ํฐ ๋น ๋ฐ์ดํฐ ์ด๊ฑฐ๋, meta์ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๊ฒฝ์ฐ์๋ Bro
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkiceberg๋ฏผ์
ใป
์ผ ๋ ์
0
82
2
- ํด๊ฒฐ
rdd, dataframe, spark sql ๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํ ๊น์?
์ ๋ชฉ ๊ทธ๋๋ก์ ๋๋ค. spark๋ก ์ฒ๋ฆฌ๋ฅผ ํ ๋ rdd, dataframe, spark sql.. 3๊ฐ์ง ๋ฐฉ์์ด ์์ด๋ณด์ด๋๋ฐ ๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํ๋๊ฒ ์ข์๊น์..? ๋ฐฉ๋ฒ์ด ๋ง๋ค๋ณด๋๊น ์ธ์ ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ์ง ํด๊น๋ฆฌ๋ค์
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkkm9311
ใป
0
173
2
- ํด๊ฒฐ
๊ฐ์ ํ๋ฐ๋ถ์ ๋์จ ์ค์ต ์ฝ๋๋ ์ด๋์ ๋ฐ์ ์ ์๋์?
๊ฐ์ ํ๋ฐ๋ถ์ ๋์จ lecture25์ ๋ํ ์ฝ๋๊ฐ ๊ฐ์ ์๋ฃ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ ์๋ค๋ฉด ์ด๋์ ๋ฐ์ ์ ์๋์?
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparkseonghyeock
ใป
0
183
3
- ํด๊ฒฐ
cdc ๊ธฐ๋ฐ์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
์๋ ํ์ธ์. ๊ฐ์ ์๋ฃ๊ณ ์๋ ๋์ค์ ์ง๋ฌธ์ด ์์ด ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. ํ์ฌ cdc ๊ธฐ๋ฐ์ผ๋ก iceberg ํ ์ด๋ธ์ operation(insert, update, delete) ์ ๋ณด๋ค์ ์ ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํ๊ณ ์์ต๋๋ค.
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark๋ฐ์ดํฐ๋ ์ดํฌํ์ฐ์คleeceo97
ใป
1
215
2
- ํด๊ฒฐ
broadcast ์ฝ๋ ์์ ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์.broadcast ์์ ์ฝ๋์์๋ ์ด๋ฏธ aggregation๋ dataframe(์ฝ๋์์ interviwer_count)<span style="color: #
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์๋
ใป
0
113
2
- ๋ฏธํด๊ฒฐ
์ฌ์์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ด์ ๋ผ๋ ๋ฉ์ธ์ง๊ฐ ์๊พธ ๋จ๋ค์
์ง๋ฌธ์ ๋ง์ผ์๋ฉด ๋ง์์๋ก ์ข์ต๋๋ค. ๊ฐ๋ฅํ ๋น ๋ฅธ ๋ต๋ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค.์ํํ ๋ต๋ณ์ ์ํด, ์์ธํ ์ง๋ฌธ ์ฌํญ ๋ถํ๋๋ ค์ :D
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ค์ธํ
ใป
0
105
1
- ๋ฏธํด๊ฒฐ
์คํธ๋ฆฌ๋ฐ ์์ ์คํ ์ py4j.protocol.Py4JNetworkError ๋ฐ์
<img src="https://cdn.inflearn.com/public/files/posts/6f16bb2a-341c-4265-a9ab-407ca9c8b21f/d50a3f57-b653-4e65-b405-49427bebe0a2.png" media-type="img"
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-sparknespola414
ใป
0
204
2
- ๋ฏธํด๊ฒฐ
Repartition๊ณผ Coalesce์ ๋ํด ๊ถ๊ธํ ์ ์ด ์์ด์!
์๋ ํ์ธ์ ์ ์๋.Repartition & Coalesce ์ ๊ฐ์๋ฅผ ๋ณด๋ค๊ฐ ๊ถ๊ธํ ์ ์ด ์์ต๋๋ค. ํ์ฌ ํ์ ์์ Repartition์ ์ํํ์ฌ partition ํ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ ๋ repartition
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ธ๋ฃฐ๋ฃฐ๋๋
ใป
1
155
1
- ๋ฏธํด๊ฒฐ
pyspark ํ์ ์์ ๋ก์ปฌ ๊ฐ๋ฐ ๋ฐ ์ด์
์๋ ํ์ธ์. ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค.scala๋ฅผ ์ด์ฉํ์ฌ spark streaming์ ๋ฐฐํฌํ ๋, ์ฃผ๋ก shadow jar ํ์ผ์ ์์ฑํ๊ณ ํด๋น ํ์ผ์ ์ด์ฉํ์ฌ ๋ฐฐํฌํ๋ ๊ฑธ๋ก ์๊ณ ์๋๋ฐ, pyspark ๊ฐ์ ๊ฒฝ์ฐ๋ ํ์ ์์ ์ด
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ฅ์์ฉ
ใป
1
317
1
- ๋ฏธํด๊ฒฐ
Spark Structured Streaming Gracefully shutdown ์ง๋ฌธ
์๋ ํ์ธ์. ์ข์ ๊ฐ์ ์ฌ๋ฐ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค.Spark Structured Streaming Fault Tolerance ๊ฐ์์์ ์๋์ ๊ฐ์ด gracefully ํ๊ฒ ์คํธ๋ฆฌ๋ฐ์ ์ข ๋ฃํ ์ ์๋ค๊ณ ๋ง์ ์ฃผ์ ๋ถ๋ถ์์ ์ง๋ฌธ์ด ์์ต
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ฅ์์ฉ
ใป
1
423
2
- ๋ฏธํด๊ฒฐ
PySpark Runtime Architecture ๋ด์ฉ ์ค ์ง๋ฌธ์ด ์์ต๋๋ค!
Spark Architecture(์คํํฌ ์ํคํ ์ฒ) ์๊ฐ ๊ฐ์ ๋ด์ฉ ์ค ๋ท ๋จ์ ์๋ node์๋ JVM์ด ์๋ ๊ฑธ๋ก ๋ณด์ด๋๋ฐ Application Master(in Worker Node) ์์ ์๋ JVM๊ณผ ์ค๋ฅธ์ชฝ ๋ ธ๋๋ค ์์ ์๋ JVM๊ฐ์ ์ฐจ์ด์ ๊ณผ ์ญํ ์ด ๊ถ
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ ํ์น
ใป
1
202
1
- ๋ฏธํด๊ฒฐ
docker ์ค์น ์ดํ์ ํฐ๋ฏธ๋ ์ฌ๋ ๋ถ๋ถ์์ ๋งํ์ต๋๋ค
1:40 ์ฏค ํฐ๋ฏธ๋ ์ด์ด์ ํ์๋๋ฐํฐ๋ฏธ๋ ํญ์ด ์๋ณด์ ๋๋ค.<img src="https://cdn.inflearn.com/public/files/posts/87966ae0-1ec6-4cea-a8e2-126c8cbcafcc/image.png"
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark๋จ ์ฌํ
ใป
1
441
2
- ๋ฏธํด๊ฒฐ
app-<timestamp>-<executor_id> ํด๋๊ฐ spark-events ๋ด๋ถ์ ์๊ธฐ๊ฒ ํ๊ณ ์ถ์ต๋๋ค.
์๋ ํ์ธ์? ๊ฐ์ ์๋ฃ๋ก ์ฃผ์ docker-compose ํ์ผ์ ๋ฐํ์ผ๋ก ์ค์ต์ ํ๊ณ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ๋ง๋ค app-- ํ์์ ํด๋๊ฐ docker-compose.yml๊ฐ ์์นํ
๋จธ์ ๋ฌ๋๋น ๋ฐ์ดํฐapache-spark์ฑ๋ฒ๊ฐ
ใป
1
263
1
- ๋ฏธํด๊ฒฐ
pyspark.SparkContext ์คํ ์ค๋ฅ ๊ด๋ จ ์ง๋ฌธ
<img src="https://cdn.inflearn.com/public/files/posts/45c9b09e-6519-4422-8f2f-7cc3afddafb8/แแ ณแแ ณแ แ ตแซแแ ฃแบ2024-03-1502.10.13.png" alt="แแ ณแแ ณแ แ ตแซแแ ฃแบ 2024-0
apache-spark๋๋ฐฐ
ใป
2
365
1






