[Spark] Spark Streaming(PySpark) - '배치 함수'를 작성하여 작업 경과 시간을 기록하고 Kafka로 발행하기
데이터 이모저모/Spark2023. 12. 24. 22:56[Spark] Spark Streaming(PySpark) - '배치 함수'를 작성하여 작업 경과 시간을 기록하고 Kafka로 발행하기

🧐 개요 이전 포스트 - [Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기 이번 포스트는 저번 포스트에 이어서, Spark Streaming으로 Kafka에 메세지를 발행하는 다른 예제를 소개합니다. 구체적으로는 작업 경과 시간을 기록하여 Kafka로 발행하고자 합니다. 이번에는 해당 기능을 구현하는 과정에서 '배치 함수'를 만들어 각 배치별로 적용될 PySpark 가공 로직을 구성해보도록 하겠습니다. (해당 기능은 추후 Grafana 대시보드에서 Kafka 스크립트의 동작 시간을 실시간 대시보드로 모니터링하기 위한 기능입니다. 해당 내용도 블로그에 포스팅하도록 하겠습니다) 🖍️ 예제 스크립트 간단한 pub/sub 기능을 구현하는 PySpark Streaming 예..

[Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기
데이터 이모저모/Spark2023. 12. 24. 15:51[Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기

🧐 개요 이번 포스트는 Spark Streaming 기능을 사용해 Kafka 채널에 발행된 메세지를 수신하는 방법을 설명합니다. Apache Spark는 Kafka에서 발행한 메세지를 스트리밍 처리하도록 기능적으로 지원하고 있습니다. 일반적으로는 JAVA API 어플리케이션을 통해 Spark Streaming 작업을 구현한다고 들었습니다만 저는 PySpark 스크립트를 작성해 구현해보도록 하겠습니다. 참고로 제가 테스트를 진행하는 환경은 다음과 같습니다. Spark Version: v3.5.0 JAVA Version: openjdk-8-jdk Kafka Host: localhost 🖍️ 공식 가이드 참조하기 Apache Spark 공식 홈페이지에 Kafka 스트리밍 관련 가이드 문서를 제공하고 있습니다...

[주저리] 개념으로 이해하는 메세지 큐(Message Queue)와 카프카(Kafka)
데이터 이모저모/Kafka2023. 12. 24. 00:41[주저리] 개념으로 이해하는 메세지 큐(Message Queue)와 카프카(Kafka)

🧐 개요 이번 포스트에서는 일전의 제가 카프카의 개념을 이해하는 과정에서 배우고 적었던 내용들을 설명하고자 합니다. 주니어 개발자로서 '메세지 큐(Message Queue)와 카프카(Kafka)'에 대한 개념을 이해하게 된 것은 최근의 일이었습니다. 컴퓨터 분야에 입문한지 이제 막 1년이 된 저에게 있어 사뭇 낯설게 느껴지는 개념들이었던 것 같습니다. 그간 제 머릿속에서 카프카의 개념은 아래와 같았습니다. "다양한 데이터 원천에서 수집된 데이터는 빅 데이터 아키텍처 기반으로 구성된 DataLake 환경에 저장된다. Apache Kafka는 이렇게 DataLake 환경에 모인 빅 데이터를 서빙하는 통합 메세지 브로커로서, 각 서비스 및 어플리케이션에서 특정 데이터에 빠르게 접근할 수 있도록 도와준다.” 컴..

[PostgreSQL] 외부 IP로부터의 접속 관리하기(pg_hba, postgresql)
데이터 이모저모/SQL2023. 12. 23. 21:28[PostgreSQL] 외부 IP로부터의 접속 관리하기(pg_hba, postgresql)

🧐 개요 지난 포스팅에서 PostgreSQL의 사용자 권한을 설정하는 방법을 다루면서 '환경 설정을 통해 외부 IP로부터의 접속을 허용할 수 있다' 고 언급하였는데 오늘은 그 방법을 확인하도록 하겠습니다. conf 디렉토리 경로 확인하기 저는 MacOS 환경에서 brew 명령어로 패키지를 설치하였기 때문에 다음의 명령어를 입력해줍니다. cd "$(brew --prefix postgresql)" 이제 해당 디렉토리 내부 어딘가에 있는 'conf 파일들이 모인 폴더'를 찾으시면 됩니다. 패키지 관리자마다, 혹은 PostgreSQL 설치 환경마다 위치가 상이할 수 있습니다. 저 같은 경우에는 아래의 경로에 conf 파일들이 모여 있습니다. /opt/homebrew/opt/postgresql@14/share/p..

데이터 이모저모/SQL2023. 12. 23. 00:39[PostgreSQL] 유저 생성 및 권한 설정하기

🧐 개요 이번 포스트는 PostgreSQL 서버에서 유저를 생성하고 권한을 부여하는 방법을 기술합니다. 데이터베이스 내부에는 일반적으로 다양한 종류의 데이터가 기록되어 있으며, 많은 서비스들이 데이터베이스 내부의 데이터를 활용합니다. 따라서 데이터베이스에 접근하는 사용자가 많은 만큼, 권한을 차등 분배하여 적절한 보안 설계를 진행할 필요가 있습니다. 모든 사용자가 동일한 권한을 가진다면, 실수로 데이터베이스를 훼손하는 경우가 발생할 수 있기 때문이죠. 🛠️ 유저 생성하기 -- 유저 생성 CREATE USER WITH PASSWORD ''; -- 0.0.0.0 접속 허용 ALTER USER CONNECTION LIMIT -1; -- 데이터베이스 생성 권한 부여 ALTER USER CREATEDB; 처음 생..

[Spark] CPU 및 메모리 사용량 설정하기
데이터 이모저모/Spark2023. 12. 22. 16:20[Spark] CPU 및 메모리 사용량 설정하기

🧐 개요 특별한 설정을 추가하지 않으면, Apache Spark는 작업을 수행하는 과정에서 컴퓨터의 CPU 및 메모리 리소스를 전부 사용하도록 설정되어 있습니다. 따라서 무거운 작업을 반복적으로 구동하는 경우, 컴퓨터의 리소스 범위를 초과하게 되어 에러가 발생하거나 시스템 리소스가 다운되는 경우가 발생하게 됩니다(저 역시도 로컬 머신에서 360억 row의 parquet 데이터를 읽는 도중 시스템이 멈추는 상황이 발생하였습니다). 다행히도 Spark에서는 작업 수행 과정에서 사용할 리소스 양을 설정하는 환경 설정을 기능적으로 제공하고 있습니다. 방법이 어렵지 않기 때문에 오늘은 CPU 및 메모리 사용량을 설정하는 방법을 다루겠습니다. 📙 공식 가이드 확인하기 spark-env.sh 스크립트에 Apache ..

image