hyunjinkim
@hyunjinkim
Students
1,248
Reviews
81
Course Rating
4.9
์๋ ํ์ธ์.
๋ฐ์ดํฐ & AI ๋ถ์ผ์์ ์ผํ๊ณ ์๋ 15๋ ์ฐจ ํ์ง์์ ๋๋ค.
์ ๋ณด๊ด๋ฆฌ๊ธฐ์ ์ฌ๋ฅผ ์ทจ๋ํ ์ดํ ์ง๊ธ๊น์ง ์ป์ ์ง์์ ๋ง์ ์ฌ๋๋ค์๊ฒ ๊ณต์ ํ๊ณ ์ ์ปจํ ์ธ ์ ์ํ๊ณ ์์ต๋๋ค.
๋ฐ๊ฐ์ต๋๋ค. :)
Contact: hjkim_sun@naver.com
Courses
Reviews
- Airflow Master Class
- Airflow Master Class
Posts
Q&A
/homework/ch10_3/dataframe_cache.py ๊ณผ์ ์ง๋ฌธ
์๋ ํ์ธ์, ์ง๊ตฌ๋ณธ๋!์ข์ ์ง๋ฌธ์ ๋๋ค.์ฐ์ ์ง๊ตฌ๋ณธ๋๊ป์ ์์ฑํ์ ๊ฒ ์ฒ๋ผ ์์ฑํ์ ๋ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ์๋์ฒ๋ผ doropDuplicates ํ ๋ company_count_df = count_df.dropDuplicates(['company_id'])๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ํญ ์ค์ด๋ ๋ค๋ฉด (ex: ์์ญ GB โ ์๋ฐฑMB) ์คํ๋ ค ์ง๊ตฌ๋ณธ๋๊ป์ ์์ฑํ์ ๊ฒ ๋ ์ข์ต๋๋ค. ์ ๊ฐ github์ ์ฌ๋ฆฐ ์ฝ๋์์ dropDuplicates ์ฐ์ฐ ๋ค์ persist()๋ฅผ ํ์ง ์์ ์ด์ ๋ ์ฐ์ company_emp_df ๋ฅผ ์ฝ์ด๋ค์ธ ํ ์ ์ผ ๋จผ์ count()๋ฅผ ๋จผ์ ํ์ธํด๋ณด๋ ๊ณผ์ ์ด ์๋๋ฐ count() ์ ์ persist()๋ฅผ ํด๋์ง ์์ผ๋ฉด ๊ฒฐ๊ตญ HDFS์์ ๋ ๋ฒ ์ฝ์ด๋ค์ด๊ฒ ๋ฉ๋๋ค. (company_emp_df๋ฅผ ๋ก๋ํ ์งํ์ ์ํํ count()์์ ํ ๋ฒ, ๋งจ ๋ง์ง๋ง show()์์ ํ ๋ฒ)๊ทธ๋์ ์ฐ์ company_emp_df๋ฅผ ๋ก๋ํ์๋ง์ ์ผ๋จ persist()๋ฅผ ํด ๋์ ๊ฒ์ธ๊ณ , dropDuplicates ์ดํ์๋ persist()๋ฅผ ํ๋ฉด ์ข๊ฒ ์ง๋ง ์ค์ต์ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋ฆฌ ํฌ์ง ์์ผ๋ฏ๋ก ์๋ตํ๋ค๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค. ๋ง์ฝ ๋ฐ์ดํฐํ๋ ์์ ๋ก๋ํ์๋ง์ count() ํ์ธํด๋ณด๋ ๊ณผ์ ์ด ์๋ค๋ฉด, ์ง๊ตฌ๋ณธ๋๊ป์ ์์ฑํ์ ๊ฒ์ฒ๋ผ dropDulicates() ์ ๊ฐ์ transform ํจ์ ์ํ ์ดํ์ persist() ํ๋ ๊ฒ ๋ ์ข์ต๋๋ค. ์ข์ ์ง๋ฌธ์ด์์ ^^ ํ์ดํ ์ ๋๋ค ๐
- 0
- 2
- 26
Q&A
์ค์น์ค์ธ๋ฐ venv๋ฅผ ๊ผญ ์จ์ผํ ๊น์?
์๋ ํ์ธ์ ์กฐ๋ง์ค๋!๊ฐ๊ธ์ ์ด๋ฉด venv ๋ก ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๋๊ฒ ์ข์ต๋๋ค.๋ฌผ๋ก ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค๋ฉด ํ์ด์ฌ ๊ธ๋ก๋ฒ ํ๊ฒฝ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ธ์์ด ๋์ง ์์ต๋๋ค. ํ์ง๋ง ๋ฐ๋ก ๊ทธ๋ฐ ์ ๋๋ฌธ์ ๊ฐ์ํ๊ฒฝ์ ์๋๋ค. airflow ๋ฅผ ์ค์นํ๋ฉด ๊ต์ฅํ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ข ์์ฑ์ผ๋ก ํจ๊ป ์ค์นํ๊ฒ ๋๋๋ฐ ๊ฒฝํ์ ์ผ๋ก ๋ณด๋ฉด pandas๋ sqlalchemy ๋ฒ์ ๊ฐ ์ข ์์ฑ ๋ฌธ์ ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ๋ณด์ ๋๋ค. ๊ธ๋ก๋ฒ ํ๊ฒฝ์ ๊ทธ๋๋ก ์ฐ๊ฒ ๋๋ฉด (๋ง์ฝ ๊ธ๋ก๋ฒ ํ๊ฒฝ์ pandas๊ฐ ์กด์ฌํ ๋) airflow ๋ฐ sqlalchemy๋ฅผ ์ค์นํ๊ฒ ๋๋ฉด ์ข ์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ ์์์ airflow ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ค์นํ๊ฒ ๋๋ฉด ๊ฒ์ฆ๋ ๋ฒ์ ์ ์ค์นํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์์กด์ฑ ์ถฉ๋์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ๋งค์ฐ ๋ฎ์์ง์ฃ . ์ด๋ Airflow ๋ง์ ํน์ง์ ์๋๊ณ ๋ณดํต ํ์ด์ฌ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋ง๋ค ๋๋ง๋ค ๊ฐ์ ํ๊ฒฝ์ ํ๋์ฉ ๋ถ๋ฆฌํด์ ๋ง๋ค์ด์ฃผ๋ ๊ฒ ์ผ๋ฐ์ ์ ๋๋ค.๋ต๋ณ์ด ๋์ จ์๊น์?
- 0
- 2
- 33
Q&A
ch4_3 apache zookeeper ์ค์นํ์ผ ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์ ๊ตฌ๋ณธ์ฑ๋ ์ฐ์ ์๊ฐ ์ค ๋ถํธ์ ๋๋ ค ์ฃ์กํฉ๋๋ค.zookeeper 3.8.4 ๋ฒ์ ์ด old ๋ฒ์ ์ด ๋๋ฉด์ ๋ค์ด๋ก๋ ๋ฐ๋ url์ด ๋ฌ๋ผ์ก์ต๋๋ค. public-nat ์๋ฒ์์ ๋ค์ด๋ก๋ ๋ฐ์ ๋ ์๋ ๊ฒฝ๋ก๋ฅผ ํตํด์ ๋ฐ์ผ์๊ฒ ์ด์? curl -O https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz์ด๋ฆ์ ๋๊ฐ์ผ๋ ๋ค์ด๋ก๋๋ง ์ ๋๋ฉด ansible playbook ์ํํ๋๊ฑด ์ด์์์ด ์ ๋ ๊ฑฐ์์!์์ ๋ URL ๊ฒฝ๋ก๋ก ์๋ฃ๋ ์์ ํด๋์๊ป์. ๊ฐ์ฌํฉ๋๋ค ๐
- 0
- 3
- 40
Q&A
Bash Operator ์ธ๋ถ ์ํ์ผ ์ํํ๊ธฐ ์ค๋ฅ
์๋ ํ์ธ์ pppcent ๋ ์ฐ์ docker-compose.yaml ์ค์ ์ ์ ๋ผ์๋ ๊ฒ ๊ฐ์์.๊ทธ๋ผ์๋ ์๋๋ค๋ฉด ์ปจํ ์ด๋ ๋ด๋ถ๋ก ๋ค์ด๊ฐ์ ํด๋น ํ์ผ์ด ์๋์ง๋ถํฐ ์ฐ์ ํ์ธํด๋ณผ ํ์๊ฐ ์์ต๋๋ค. ์์ปค ์ปจํ ์ด๋๋ฅผ ํ์ธํ ํ ์ปจํ ์ด๋ ๋ด๋ถ๋ก ์ง์ ํด์ /opt/airflow/plugins ๋๋ ํ ๋ฆฌ ๋ฐ ๊ทธ ๋ด๋ถ์ select_fruit.sh ํ์ผ์ด ์กด์ฌํ๋์ง๋ถํฐ ํ์ธํด๋ด์ผ ํด์. (์๋ ๋ช ๋ น์ผ๋ก ์ง์ )sudo docker ps sudo docker exec -it {worker์ปจํ ์ด๋} /bin/bash ์ปจํ ์ด๋ ๋ด๋ถ์ ํด๋น ํ์ผ์ด ์กด์ฌํ๋์ง๋ถํฐ ํ์ธํด๋ณด์๊ฒ ์ด์? ๋ง์ฝ ์๋ค๋ฉด docker-compose.yaml์ด ์ ๋๋ก ์ธ์๋์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- 0
- 3
- 24
Q&A
์ค์น ๋ฒ์ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์ ์ด์ ์ฑ๋!๋ก์ปฌPC์์ python3.9 & Airflow 3.0.4 ๋ฒ์ ์ผ๋ก ์ค์นํ๋ค๋ ๋ง์์ด์์ฃ ?Airflow 3.0.4 ๋ฒ์ ๊ณผ 3.1 ๋ฒ์ ๊ฐ ์ฐจ์ด๋ฅผ ์ ๊ฐ 100% ์์ง๋ ๋ชปํ์ง๋ง ์๋ง๋ ์ค์ตํ๋๋ฐ ๋ฌธ์ ๋ ์์๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๊ทธ๋๋ ํน์ ๋ฒ์ ์ ๋ง์ถ๊ณ ์ถ๋ค๋ฉด ๋ก์ปฌ ํ๊ฒฝ์ชฝ ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ์ 3.12๋ก ์ค์นํ์๊ณ ๊ฐ์ํ๊ฒฝ ๋ง๋ ๋ค์์ pip install "apache-airflow[celery]==3.1.3" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.3/constraints-3.12.txt"์ด๋ ๊ฒ ๋ค์ ์ค์นํด๋ณด์๊ฒ ์ด์? ์ฐธ๊ณ ๋ก ์ง๊ธ airflow ์ปจํ ์ด๋๋ก ์ค์นํ๋ฉด ํ์ด์ฌ ๋ฒ์ ์ด 3.12๋ก ์ค์น๋ฉ๋๋ค. ๊ทธ๋์ ๋ก์ปฌ์ python ๋ฒ์ ๋ 3.12๋ก ๋ง์ถฐ์ฃผ์๊ณ ์์ ์๋ ค๋๋ฆฐ๋๋ก ์ค์นํด์ฃผ์๋ฉด ํ์ด์ฌ 3.12 ๊ธฐ์ค์ผ๋ก airlfow 3.1.3 ์ค์น๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- 0
- 1
- 25
Q&A
์ฐ๋ถํฌ ๋ฒ์ ๋ค์ด๋ฐ์์ผํ๋๋ฐ ์ด๋ค๊ฑธ๋ก ์ค์นํด์ผํ ๊น์?
์๋ ํ์ธ์ Rootree๋Ubuntu-24.04 ๋ก ์ค์นํ์๋ฉด ๋ฉ๋๋ค!
- 0
- 1
- 26
Q&A
DAG ๋ง๋ค๊ธฐ ์ค airflow ํจํค์ง ๋ก๋ ์๋ฌ
์๋ ํ์ธ์ abc๋ ์ฃผ๋ก pip install ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํ๋๋ฐ IDE ํด์์ ์ฌ์ ํ ์ธ์์ด ์๋๋ค๋ฉด ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ์ด ์ ์์กํ์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค.ํ์ฌ ํ์์ ํ์ธํด์ผํ๋, ์ฐ์ vscode ์ ์ฒด ํ๋ฉด์ ์บก์ณํด์ ์ฌ๋ ค์ฃผ์ค๋์? ํ๋จ ์ค๋ฅธ์ชฝ์ ๋ณด์๋ฉด ํ์ฌ ์ด๋ค ๊ฐ์ํ๊ฒฝ์์ ์์ ํ์๋์ง ๋ณด์ ๋๋ค. ์ฌ๊ธฐ๋ ๊ฐ์ํ๊ฒฝ์ธ๋ฐ pip install์ ๊ธ๋ก๋ฒ ํ๊ฒฝ์์ ํ๋ค๋๊ฐ, ์๋๋ฉด ๋ฐ๋๋ก ํ์ จ์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.์๋ฌดํผ ์ฌ๋ฐ๋ฅธ ๊ฐ์ํ๊ฒฝ์์ ์์ ํ์ จ๋์ง๊ฐ ์ค์ํ๋, vscode ์ ์ฒด ํ๋ฉด ์บก์ณํด์ ์ฌ๋ ค์ฃผ์ธ์! ๊ทธ๋ฆฌ๊ณ UnauthorizedAccess ์๋ฌ ๋จ๋๊ฒ๋ ์ ์ฒด ์บก์ณํด์ ์ฌ๋ ค์ฃผ์๊ฒ ์ด์? ์ ๊ฐ ๋งฅ๋ถ์์๋ง ์ฃผ๋ก ์์ ํด์ powershell ์๋ฌ ๋ด์ฉ์ ํ๋ฒ ๋ด์ผ ์ ๊ฒ ๊ฐ์์ ^^ ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 64
Q&A
์ง๋ฌธ์์ต๋๋ค ์น์ 13. Spark streaming ๋ถ๋ถ
์๋ ํ์ธ์, ์ ์ ํ๋์ฐ์ ๋ก๊ทธ ์ค์ ์ ์ ์ ํ๋์ฒ๋ผ ๋์ค๋๊ฒ ๋ง์ต๋๋ค. ํน์ ๋ชฐ๋ผ ์ ๋ EC2๋ถํฐ ์ฌ๊ตฌ์ฑํด์ ๋ค์ ํด๋ดค๋๋ฐ ์ฌ๋ ค์ฃผ์ ๊ฒ์ฒ๋ผ ๋์ค๋๋ผ๊ตฌ์. ansible-playbooks/ch9_4/setting_spark-on-yarn.yaml ํ์ผ์ ๋ณด๋ฉด ์๋์ ๊ฐ์ด ๋ก๊ทธ ๋ด์ฉ์ ์ ํ ํ๋ ๊ตฌ๋ฌธ์ด ์์ต๋๋ค. (์ฌ์ง) ๋ก๊ทธ ์ค์ ํ์ผ์ธ log4j2.properties ๋ฅผ ๋ง๋๋ ๋ด์ฉ์ธ๋ฐ ์ด ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ์์ต๋๋ค. appender.console.layout.pattern = %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n%ex๊ทธ๋์ ์ฐ์์ผ ์:๋ถ:์ด {log_level} {ํด๋์ค๋ช }: ์๋ฌ๋ด์ฉ ์ด๋ ๊ฒ ๋์ค๊ฒ๋ ๋์ด์์ด์. ์๋ง๋ ์ ๊ฐ ๋ นํํ ๋น์ ์ด ๋ด์ฉ์ด ์ ๋ค์ด๊ฐ์์์ ํ๋ฅ ์ด ๋์๋ฐ, ์คํ๋ ค ์ ์ ํ๋์ฒ๋ผ ๋์ค๋๊ฒ ๋ง๋ ์ค์ ์ด๋ผ ๊ฑฑ์ ํ์ง ์์ผ์ ๋ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ spark-submit ํ์ ๋ ์คํ๋๋ ์๋๋ ์ข ๋๋ฆฐ๊ฒ ๋ง์ต๋๋ค. ํธ์งํ๋ฉด์ ์ ๊ฐ ๋ก๋ฉ์ด ๋๋ฆฐ๋ถ๋ถ์ ๋ชจ๋ ์ปท ํธ์ง์ ํ์ด์. ๊ทธ๋์ ์์ ๋ณด์๊ธฐ์๋ ๋นจ๋ฆฌ ๋์ค๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋๊ฒ ๋ง๊ณ ์ ๊ฐ EC2 ์ฌ๊ตฌ์ฑํด์ simple_pyspark.py ๋๋ ค๋ดค๋๋ฐ ์์๋๊ธฐ๊น์ง 34์ด ๊ฑธ๋ฆฌ๋๋ผ๊ตฌ์. ์ ๊ฐ ๋ นํํ์ ๋๋ ์ด์ ๋ ๊ฑธ๋ ธ์ผ๋ ์๋ง ์ ํ๋๊ป์ ๋๋ผ์๋ ์๋๊ฐ ๋ง์๊ฒ๋๋ค. ์ ๊ฐ ํ๋ก์ ํธํ์ ๋ ์ด์ํ๊ฒฝ์ ์๋ฒ ์์์ด ์ถฉ๋ถํ์๋๋ฐ ์ค์ตํ๊ฒฝ๋ณด๋ค๋ ํจ์ฌ ๋นจ๋์ด์. ์๋ง ์์์ด ๋๋์น ์์์ ๋๋ฆฐ ๊ฒ์ผ ์ ์์ต๋๋ค. ํน์ simple_pyspark.py ์ํํ์ ๋ ๋ช ์ด ์ ๋ ๊ฑธ๋ฆฌ์ จ๋์ง ๋จ๊ฒจ์ฃผ์๋ฉด ์ ๋ ๋น๊ต๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค.ํ์ดํ ์ ๋๋ค ๐ช
- 0
- 2
- 35
Q&A
ot ์๋ฃ
์๋ ํ์ธ์ ๊น์์ฐฌ๋! ๊ฐ์ ์๊ฐ ๋ถ๋ถ ์๋ฃ๊ฐ ์์๋ค์ ๐์ถ๊ฐํด์ ์ ๋ก๋ ์๋ก ํด๋จ์ต๋๋ค. ์๋ ค์ฃผ์ ์ ๊ฐ์ฌ๋๋ ค์ ๐
- 0
- 2
- 33
Q&A
task_id ์ฌ์ฉ๋ฒ์ด ๋ญ๊ฐ ๋ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ ํ์ธ์ ใ ใ ใ ๋!ํน์ ์์ฑํ์ ์ฝ๋๋ฅผ ๋ณผ ์ ์์๊น์? ๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ์ ๋ด์ฉ์ด ์ ๊ฐ ์ ์ดํด๊ฐ ์๊ฐ์์. ๐์ด๋ค ์ ์ด ๊ถ๊ธํ์ ์ง ์กฐ๊ธ๋ง ๋ ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ๐
- 0
- 3
- 47





