전체 글

공부와 경험의 기록!
'스파크 완벽 가이드' 책에서는 스파크 성능 향상의 기법을 크게 간접적/ 직접적인 기법으로 나누어 설명하고 있다. 또한 사용자가 제어 가능한 범위 내에서 튜닝 기법들을 소개하고 있다. 19장의 내용 중 핵심 내용을 요약과 중요한 부분을 더 정리 해보았다. 1. 간접적인 스파크 성능 향상 기법 1.1 설계 방안scala vs java vs python vs R 구조적 API 로 해결이 되지 않아, RDD 트랜스포매이션이나 UDF 를 사용해야 하는 경우 R , Python 의 사용은 피하는 것이 좋다. Python 에서 RDD 코드를 실행하게 되면, Python Process 를 오가는 데이터들을 직렬화 하면서 비용이 크게 발생하고, 안정성이 떨어지게 된다. Spark 에서 직렬화란 : 객체를 바이트 스트림..
https://leetcode.com/problems/all-possible-full-binary-trees/모든 가능한 이진 트리의 경우의 수를 구하는 문제이다. 이진 트리의 노드 수가 N이라고 주어 질때 N=1, N=3, N=5 의 경우를 그림으로 표현하면 아래와 같다. 그림에서 파악할 수 있듯이, N=5 의 경우 N=3이 root.left 와 root.right 에서 반복이 되고 있다. 즉, N=5에서는 N=3, N=1 에서 구한 값을 재활용하여 사용할 수 있다. N=7 또한 N=1, N=3, N=5의 값을 다시 활용하여 모든 경우의 수를 구할 수 있다. 또한 이진 트리는 root가 반드시 0, 그리고 자식 노드들이 항상 둘다 0 이거나 null 이므로, 노드의 개수는 항상 홀수라는 특성이 있다. ..
kakfa의 등장 배경실시간으로 데이터를 처리하는 과정에서, 다수의 producer 와 consumer가 개별적인 연결을 맺는 구조의 경우 하나의 시스템만 추가되어도 통신 구조가 복잡해진다. 이런 문제를 해결하기 위해서 카프카를 통해, 메세지와 데이터의 흐름을 중앙화하여 관리한다.   Kafka 의 구성요소 producer : 정보를 제공하는 processconsumer: 정보를 제공받아서 사용하려는 processconsumer group : 카프카 컨슈머들은 컨슈머 그룹에 속한다. 여러개의 컨슈머가 같은 컨슈머 그룹에 속할 때 각 컨슈머가 해당 토픽의 다른 파티션을 분담해서 메세지를 읽을 수 있다.broker : 데이터를 저장하고 수신 및 전달하는 node (그림은 MQ == Broker 같이 보이는데..
조건에 맞는 아이템들의 가격의 총합 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/273709 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr SELECT SUM(PRICE) AS TOTAL_PRICEFROM ITEM_INFO WHERE RARITY = 'LEGEND' 물고기 종류 별 대어 찾기https://school.programmers.co.kr/learn/courses/30/lessons/293261 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤..
기본이 되는 hadoop cluster docker-compose.yml 은 아래의 repository 를 참고하였으며, presto 엔진을 사용하기 위해 수정하였다.  https://github.com/big-data-europe/docker-hadoop GitHub - big-data-europe/docker-hadoop: Apache Hadoop docker imageApache Hadoop docker image. Contribute to big-data-europe/docker-hadoop development by creating an account on GitHub.github.com docker-compose.yml 파일은 다음과 같다. version: "3"services: nameno..
chrome headless 모드에서 크롤링을 하던 중 아래와 같은 문제가 발생하였다. {logging_mixin.py:188} WARNING - /home/ubuntu/airflow_venv/lib/python3.12/site-packages/airflow/task/task_runner/standard_task_runner.py:61 DeprecationWarning: This process (pid=7115) is multi-threaded,use of fork() may lead to deadlocks in the child. grep 명령어를 사용하여 fork 가 어디에서 사용되는지 해당 파일에서 확인해 보았다. fork() 함수가 _start_by_fork() 라는 함수 내부에서 사용되고 있다...
프로그래머스 유형별 문제 도장깨기 챌린지 ! 1. 조건에 맞는 도서 리스트 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/144853 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr-- 조건에 부합하는 도서 리스트 출력하기 SELECT BOOK_ID , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOK WHERE 1=1AND PUBLISHED_DATE >= '2021-01-01' AND PUBLISHED_DATE  2. 조건에..
airflow 를 t2.micro (가장 저렴한 프리티어 인스턴스) 로 deploy 하다가 서버가 계속 죽는 현상이 나서 메모리 사용량을 찍어봤더니 인스턴스가 버거워 하는 것을 확인했다..사용중인 인스턴스를 '중지' (절대 종료하면 안된다 인스턴스가 삭제됨) 한 후에, 인스턴스 설정 > 인스턴스 유형 변경을 선택한다. 원하는 인스턴스 유형을 선택하고 적용시킨다. 4GB 정도면 충분하겠지..! 적용이 성공되면 다음과 같다 재부팅 후 airflow 실행을 해보니 이제 인스턴스가 어는 것도 없고 task 가 잘 실행된다!
minjiwoo
MJ workspace