본문 바로가기

분류 전체보기35

[Spark] 분산 파일 시스템에서의 데이터 지역성 다양한 환경에서 실행가능한 스파크 스파크는 다양한 저장소에 붙여서 분산 처리가 가능한 프레임 워크이다. 하지만, Spark는 처음 개발된 환경은 Hadoop에서 사용하는 HDFS라는 분산 파일 시스템이며 해당 환경에서 In-Memory 기반으로 최적의 분산 처리를 수행하는 데 최적화가 되어있다. 때문에 오늘은 Spark를 분산 파일시스템에서 운영 할 때의 이점을 소개하고자 한다. 결론부터 말하자면 분산 파일시스템에서 Spark를 이용하면 데이터 지역성의 이점을 누릴 수 있다. 대표적인 분산 파일 시스템인 Hadoop에서의 데이터 지역성을 이해하기 전에 최적화에 대한 나의 기본 관점을 공유하고자 한다. 최적화의 기본 프로그램을 최적화 시킬 때, 두 가지 I/O를 줄이는 것이 정말 중요하다고 생각한다. 첫 .. 2023. 7. 5.
[Airflow] Local Executor Local Executor를 먼저 학습하는 이유 Sequential Executor는 병렬처리가 불가능하고 Celery Executor나 Kubernetes Executor는 여러 대의 서버가 필요하다. 프로덕션 환경에서는 확장성이 매우 중요한 요소이고, 당연히 멀티 노드 아키텍처에서 분산 실행 될 수 있는 Executor를 사용하는 것이 맞다. 다만, 기본이 되는 Local Executor를 통해 개념을 이해하고 단일 머신에서 간단하게 학습할 수 있다. 다중 프로세스를 병렬처리 Local Executor는 단일 서버에서 여러 프로세스를 돌릴 수 있다. airflow의 기반이 되는 언어는 Python으로, 내장 병렬처리 모듈인 multiprocessing을 활용한다. 여러 task를 동시 실행 할 수 있.. 2023. 7. 2.
[Airflow] PostgresOperator PostgresOperator 시작 환경 airflow에서 PostgresOperator를 사용하여 postgresql에 일정 주기로 쿼리를 수행하도록 스케줄링을 걸어 보았다. 이 글은 그 과정을 정리하였고, 그 과정을 풀어내고자 한다. 먼저 내 머신의 로컬 폴더 구조는 다음과 같다. 에어플로우를 한다면 처음에 $AIRFLOW_HOME 환경변수를 정의하고 그 안에 dags 폴더를 만들게 되는 데, 내 dags 폴더 안에는 총 4개의 dag 모듈이 있고 sql이라는 스크립트를 모아둔 폴더를 만들었다. PostgresOpeator 연동하기 PostgresOperator를 사용하려면 먼저 postgresSQL DBMS와 airlfow provider가 깔려 있어야 한다. postgresSQL 설치는 이 글에서.. 2023. 7. 1.
[Hive] Architecture Major components UI 사용자가 쿼리 및 기타 작업을 시스템에 제출하기 위한 사용자 인터페이스 Hive Web UI, 커맨드라인 (HD Insight는 Window Server만 해당) Driver 쿼리를 수신하는 구성 요소. 세션을 핸들링하고 JDBC/ODBC 인터페이스에서 형성된 execute 및 fetch API를 제공 Compiler 쿼리 구문, 쿼리 블록, 쿼리 식에 대한 의미 분석 수행. 메타스토어에서 조회한 테이블 및 파티션 메타데이터의 도움으로 실행 계획을 생성 Metastore 컬럼명 및 타입, 데이터를 읽고 쓰는 데 필요한 직렬화/역직렬화 변환기, 데이터가 저장되는 해당 HDFS 파일을 포함하여 웨어하우스에 있는 다양한 테이블 및 파티션의 모든 구조 정보를 저장 하이브에서 .. 2023. 7. 1.