본문 바로가기

MLOps

(37)
[트러블 슈팅] DAG안에 Task들이 병렬 실행을 하지 않는다?(Feat. Airflow Executor) Airflow Executor 개요 아래 그림과 같은 Graph를 가지는 DAG파일을 작성했다. 작성당시에 의도는 "앞에 3개의 Task를 동시에 실행하는 것"이었는데, 나머지 2개가 Queue 상태에 계속 걸려있는 것이다. 뭔가 잘못됐구나 싶었는데, 비밀은 Executor에 있다. Airflow.cfg 파일을 열어보면 지금 사용 중인 Executor을 확인할 수 있다. 이름만 봐도 알 수 있다. "순차적으로 실행하는 녀석" 옳다구나 하고 뒤에 값을, 바꾸지 마라 """ executor = KubernetesExecutor or executor = LocalExecutor """ 위에 처럼 바꾸고 airflow를 실행한다면, "Sqlite는 LocalExecutor를 지원하지 않는다!!"라는 에러문구를 ..
[트러블 슈팅] RuntimeError: Python in worker has different version 3.9 than that in driver 3.7, PySpark cannot run with different minor versions. Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set. 트러블슈팅 RuntimeError: Python in worker has different version 3.9 than that in driver 3.7, PySpark cannot run with different minor versions. Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set. 개요 파이스파크(3.9)를 실행하자, 파이썬(3.7)이랑 파이스파크 버전이 다르다는 오류 메시지가 나왔다. 방법(2가지) 파이스파크가 사용하는 파이썬 버전을 현재 파이썬 버전으로 변경 현재 파이썬 버전을 파이스파크 버전으로 변경 방법 1 spark-env.sh 파일에 아래 2줄 추가 export..
[트러블 슈팅] Error initializing SparkContext.org.apache.hadoop.security.AccessControlException: Permission denied 트러블 슈팅 Error initializing SparkContext. org.apache.hadoop.security.AccessControlException: Permission denied: user=airflow, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:504) 개요 SparkSession 인스턴스 생성할 때는 아무 일 없다가, 세션을 생성하고 CreateDataFrame을 하니까 권한 오류가 생겼다. 방법 스크립트를 실행하는 유저한테 권한을 주면 해결 hdfs-stie.xm..
[데이따] 하둡, 스파크, 에어플로우.. 개고생 , Let's go 하둡, 스파크, 에어플로우(feat. Docker) 수많은 시련. 끝에 하둡이란 괴물을 설치하고 로컬에 띄우는 것을 성공했다.. 감격스러워서 사진을 남기고 설치과정을 정리해서 올려야겠다. 느끼는 건데, 역시 도커는 최고다.. 첫 시도할 때, "아 그냥 처음부터 다시 하자"의 처음의 기준이 달라진다. (컴퓨터 사양이 안 좋아서 3개 정도만 로컬에 두는..)
전장연 알리미 (feat. 지하철 뭐 안타지?) - 2 전장연 알리미 만약에 모든 지하철 호선을 타도 출근 시간이 똑같다면 어떤 지하철을 탈 것인가? "음.. 곧 도착하는 지하철을 먼저 타지 않을까요?" 맞는 말이다. 물론 전장연 아침 지하철 승하차 시위가 일어나기 전 까지는 말이다. 그렇다면 정답은 "시위를 하지 않는 호선의 지하철을 타는 것"이, 지금 시대에 정답이다. 며칠 전까지 사당에서 출근해서 2호선과 4호선 중에 4호선만 고집하다 출근이 늦어진 나 때문에 만든 건 절대 아니라고 말하지 않는다. 1편을 보지 않았다면 먼저 보고 오기 바란다.
전장연 알리미 (feat. 지하철 뭐 안 타지?) - 1 전장연 알리미 만약에 모든 지하철 호선을 타도 출근 시간이 똑같다면 어떤 지하철을 탈 것인가? "음.. 곧 도착하는 지하철을 먼저 타지 않을까요? 맞는 말이다. 물론 전장연 아침 지하철 승하차 시위가 일어나기 전 까지는 말이다. 그렇다면 정답은 "시위를 하지 않는 호선의 지하철을 타는 것" 이, 지금 시대에 정답이다. 며칠 전까지 사당에서 출근해서 2호선과 4호선 중에 4호선만 고집하다 출근이 늦어진 나 때문에 만든 게 아니라고 절대 말하지 않는다. 프로세스 스크랩한다. 나에게 메시지를 보낸다. 전혀 어렵지 않은 코드와 단순한 과정만 있을 뿐이다. 확인해야 할 사항 지하철 시위 및 지연과 같은 안내는 서울 도로 교통 공사홈페이지 공지사항에서 확인 가능 시위전날에 공지가 올라옴 최신 글 하나만 확인, BU..
[CLOUD] Amazon S3? Amazon S3? 갑자기 s3 타령? MLops 하려면, 언젠가는 필요할 거라고 생각하기 때문.. Reference AWS 공식 문서의 Aws S3란? Amazon S3 S3? 3개의 S(Simple Storage Service), 즉 Amazon Simple Storage Service S3 기능 스토리지 클래스 S3는 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스. S3의 각 객체는 그와 연결된 스토리지 클래스가 있음 쉽게 말하면, 자주 액세스 하냐 안 하냐?, 밀리초 단위마다 액세스 하냐? 와 같은 상황 별 클래스들이 존재하는데, 각 클래스는 비용이 다르기 때문에 쓸 용도에 맞게 선택해서 쓸 것(외울 필요는 없고 스토리지 존재 여부만 알자) 데이터 처리 데이터를 변환하고 워크플로를 트리거하..
[CLOUD] 인바운드 & 아웃 바운드 (Feat. 보안그룹) 인바운드 & 아웃 바운드 (Feat. 보안 그룹, 포트) 갑자기 바운드 타령? MLops 할라먼, 언젠가는 필요할 거라고 생각하기 때문.. Reference dkhan님의 인/아웃 바운드 정리 AWS doc의 인/아웃바운드 규칙 인/아웃 바운드 규칙 모든 Something(IP, Port, Packet, Policy…)에 대한 접근을 허락하는 것은 위험하기 때문에, 이때 적용하는 규칙 인바운드 서버 내부로 들어오는 Something(IP, Port, Packet, Policy…) 아웃바운드 서버 외부로 나가는 Something(IP, Port, Packet, Policy…) 인바운드 규칙 클라이언트 -> 서버 데이터에 접속하는 권한 클라이언트 -> 서버에 데이터를 업로드할 때 필요한 권한 기본적인 규칙은..