Python
-
python multiprocessing Pool을 활용한 데이터 병렬 처리MLOps 2024. 12. 8. 21:59
🍏 배경tfidf 추천 모델의 cosine 유사도 추출 후 추천 결과를 뽑기 위한 단계에서16만건의 유저 데이터를 처리하기 위한 분산처리 및 최적화가 필요했습니다. 🍎 해결방법python의 threading은 GIL(Global Interpreter Lock) 기능 때문에 병렬처리가 어려움으로 여러 작업을 효율적으로 병렬 처리할 수 있는 방식인 multiprocessing.Pool을 활용했습니다. https://ninano1109.tistory.com/294 multithread vs multiprocess (feat. Process, Pool 비교)멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 ..
-
multithread vs multiprocess (feat. Process, Pool 비교)IT용어정리 2024. 5. 8. 18:55
멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 프로세스 안에 여러개의 스레드 존재4가지 메모리 영역중 스레드는 고유의 stack을 보유함 > stack은 독립적 함수 호출 가능 > 독립적 실행 흐름 추가 프로세스메모리 내 별도의 주소 공간에서 실행(독립적 구조) 동시성(concurrency) vs 병렬성(parallel) 동시성: 동시에 실행하는 것처럼 보이는 → 각 프로세스 작업을 작게 쪼개어 번갈아 처리 → context switching병렬성: 실제 물리적인 동시 실행 멀티스레드1. 여러개의 스레드가 하나의 프로세스 내에서 실행되며,2. 동일한 메모리 공간을 공유3. context switching..
-
UnicodeEncodeError: 'ascii' codec can't encode characters개발Tip 2022. 3. 6. 00:41
기존 yaml 파일의 코드를 수정하기 위해 write를 시도해봤더니 아래와 같은 에러가 나왔다: File "/data/airflow/../delete_serviceKey_dag.py", line 45, in get_client_names outfile.write('\\n\\n\\n'.join(new_clients)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 449-453: ordinal not in range(128) =>file을 열고 작성할 때 open과 write 둘다 encoding이 필요하다 with open('/data/airflow/G2-CONF/clients.yml', encoding="utf-8") as ..
-
[Cassandra 설치 #2] Python2.7 파이썬 2점대 버전 설치 및 실행DataBase/Cassandra 2021. 7. 23. 23:08
Cassandra CLI 환경을 사용하기 위해서는 반드시 2.7버전 설치 필요!! 1. Python 2.7 버전 다운로드 https://www.python.org/downloads/source/ # CLI python 다운로드 $ wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz # 다운로드 폴더 압축 해제 $ tar -xzvf Python-2.7.11.tgz # 다운로드 파일 삭제 $ rm -rf Python-2.7.11.tgz 2. Python 2.7 소스 빌드 환경 구성 파이썬 실행을 위한 소스 빌드 환경 구성하기 $ cd Python-2.7.11 $ make install 💩 에러 메세지1 The program 'make' can b..
-
[Python] Flask 서버 docker 컨테이너로 띄웠을 때 Page 에러Backend/Flask 2021. 5. 26. 23:24
Flask app.py에서 host 주소를 추가해 주지 않으면 도커 컨테이너로 서버를 실행하고 웹에서 확인해보면 위와 같은 에러 메세지를 볼 수 있습니다. 따라서 아래와 같이 app.py에 호스트 주소를 추가해 줍니다. 변경 전 # app.py if __name__ == '__main__': # 코드 수정 시 자동 반영 app.run(debug=True) 변경 후 # app.py if __name__ == '__main__': # 코드 수정 시 자동 반영 app.run(host='0.0.0.0', debug=True) -이상 오늘의 삽질일기 끝! 여기저기 삽질도 해보고 날려도 먹으면서 배우는 게 결국 남는거다 - Z.Sabziller '쫄보의삽질' 블로그 탄생스토리가 궁금하다면 👇 Git push 취소 ..
-
[Python] Flask REST API 서버 만들기 (feat. MySQL, Vue.js 연동하기)Backend/Flask 2021. 5. 9. 11:58
0. Flask 설치 프로젝트 폴더를 생성하고 flask 패키지를 설치합니다. $ pip install flask 1. 기본 app.py 작성 프로젝트 폴더 내부에 app.py 파일을 만들고 아래와 같이 기본 세팅을 해줍니다. 2. MySQL 연결하기 2-1. flask에서 사용할 수 있는 mysqldb 패키지 설치하기 $ pip install flask_mysqldb 2-2. flask_mysqldb 모듈 import # app.py from flask_mysqldb import MySQL ... mysql = MySQL(app) 2-3. MySQL 계정 설정 및 환경변수 생성하기 # 환경변수 생성 패키지 설치하기 $ pip install python-dotenv app.py와 같은 경로에 .env 파..
-
[Python] Flask CORS 오류 해결하기Backend/Flask 2021. 5. 7. 22:57
Flask로 백엔드 API 개발 시 프론트와 연결하여 웹에서 응답을 확인할 때, 다음과 같은 CORS 오류가 발생하여 이를 해결하기 위한 삽질내용을 공유합니다:) 웹 실행 후 console log를 확인해보면.. Access to XMLHttpRequest at 'http://localhost:5000/' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 뭐 대충 이런 내용의 에러 메세지를 확인할 수 있습니다. 이를 위한 해결방법으로는: 1. flask_cors 모듈을 설치해야 합니다. $ pi..
-
[환경설정] Spark 설치 및 ubuntu 환경 설정 (feat.AWS)DataProcessing/Spark 2021. 2. 15. 23:24
Spark 설치 시 다음과 같은 프로그램들이 필요합니다. Spark 2.4.7 Java jdk 1.8_251 Scala 2.11.12 Hadoop 2.7.3 Python 3.7.5 (Pyspark 사용 시 필요) Spark 2.4.7 $ wget https://downloads.apache.org/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz $ tar xvf spark-* echo "export SPARK_HOME= ~/programs/Spark/spark-2.4.7-bin-hadoop2.7" echo "export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin" echo "export PYSPARK_PYTHON=/usr/bin/p..