본문 바로가기

전체 글38

[Apache Airflow] 아파치 에어플로우란? Apache Airflow 아파치 에어플로우 에어비엔비에서 개발한 워크플로우 스케쥴링, 모니터링 플랫폼 아파치 탑 레벨 프로젝트 에어비엔비, 야후, 페이팔, 인텔, 스프라이프 등 여러 회사들이 사용중이다. 대형 프로젝트들에서 겪고 있는 공통적인 문제가 있고 이러한 문제를 아파치 에어플로우가 해결해 줄 수 있다. 에어플로우를 사용하는 이유 한 두개의 파이프라인을 관리하는것은 스케쥴링, 모니터링이 어렵지 않다. 하지만 관리해야 하는 파이프라인이 수십개가 있다면? 파이프라인마다 의존성이 복잡한 경우라면? 에어플로우는 워크 플로우를 작성, 스케쥴링, 모니터링을 쉽게 할 수있게 해주는 플랫폼이기 때문에 사용 한다. * 워크 플로우란 의존성으로 연결된 작업(task)의 집합 => DAG(Directed Acycli.. 2022. 4. 16.
알고리즘 풀이에 대한 고민 알고리즘은 결국 성능과 연관이 있다. 아무리 코드가 짧더라도 for문이 중첩되어 있다면 그 코드는 BIG-O(n^2)가 되어버리는 것처럼 성능을 고민하면서 코드를 작성해야한다. 특히 파이썬의 경우 데이터를 다루는데 특화되어 있어 python module을 잘 활용하는것도 중요하다. 나는 알고리즘 문제풀이 초보지만 최대한 O(n)을 O(1)을 생각하면서 코드를 짠다. 그러다보니 문제 풀이 시간이 길어진다는 문제가 있는데 시간의 문제는 차차 나아질거라고 생각한다 고민의 시작은 시간이 아닌 나의 풀이는 항상 조금 길다는 것인데, 다른 사람의 풀이를 보게 되면 굉장히 짧아서 매번 충격에 압도된다. 오늘 알고리즘 풀이를 한 문제와 풀이는 아래와 같다. 이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가.. 2022. 4. 9.
[AWS] 나도 모르게 빠져나간 금액 환불받기 2월중에 AWS RDS를 사용했었다. 데이터베이스 진짜 한시간은 사용해봤을까? 사용을 마치고 다시 생성하기 귀찮으니까 중지(stop)를 해놨었다. 그런데 4월 2일인가..아침에 눈을뜨니 계좌에서 5만원이 넘게 빠져나갔다고 알람이 왔다. 분명 내가 중지 시켰는데 뭐지?!!! 허겁지겁 AWS를 들어갔다. ??? 저번에 중지 시켜둔 RDS 가 초록불이 뜬채로 계속 돌아가고 있었다.. 다시 중지시키고 삭제하려고 보니까 중지는 7일뒤에 다시 재시작된다는 경고문이 떴다. 아..그땐 왜 못봤을까..... 일단 허겁지겁 고객센터에 문의를 남겼다. 내가 선택한 환불 요청 문의글 케이스는 이렇게 선택했고 문의글을 작성했다. 그리고 다음날 바로 환불과 함께 이메일로 답장이 왔다. "어 니가 말하는거 알아들었고 한번은 봐줄게.. 2022. 4. 4.
[Apache Spark] 스파크의 구조와 실행흐름 이해하기 스파크 애플리케이션의 구조 스파크를 사용하면서 잊지 말아야 하는 점은 데이터는 항상 분산되어 있고 같은 연산을 하더라도 여러 노드에서 작업한다는 점이다. [스파크 구조 설명] 스파크는 작업을 관리하는 드라이버 프로그램과 작업이 실제로 작동되는 워커 노드로 나뉘어 있다. 그리고 중간은 클러스터 매니저가 존재하는데 클러스터 매니저는 드라이버 프로그램과 워커노드를 연결시켜주는 중간다리 역할을 한다. [용어 설명] Driver Program : 개발자가 상호작용 할 수 있는 노드이다. main함수를 실행하고 스파크 Context를 생성한다. Spark Context : 새로운 RDD를 생성하고, 클러스터 매니저와 연결되는 객체이다. Cluster Manager : 드라이버에서 지시받은 작업(리소스)의 스케쥴링과.. 2022. 3. 30.
분산처리의 문제점 분산처리중 신경써야하는 문제점 1. 부분 실패 - 노드 몇개가 프로그램과 상관 없는 이유로 인해 실패 => RDD의 불변한 성질을 이용해 복구가 가능함 => 스파크 내부에서 일어나는 과정이라 크게 신경쓰지 않아도 됨. 2. 속도★ - 많은 네트워크 통신을 필요로 하는 작업은 속도가 저하 => 네트워크 통신을 필요로 하는 코드를 후순위에 두고 작성해야한다. => 네트워크는 메모리 연산에 비해 100만배 정도 느리다. 참고 이미지 2022. 3. 23.