본문 바로가기

전체 글102

[Spark] Spark 프로그래밍: DataFrame (2) 개발/실습 환경 소개 Spark DataFrame 실습 요약 +) : Spark vs. Pandas 개발/실습 환경 소개 Spark 개발 환경 옵션 Local Standalone Spark + Spark Shell : 한대에서 돌아가는 local모드의 프로그램 Python IDE – PyCharm, Visual Studio Databricks Cloud – 커뮤니티 에디션을 무료로 사용 다른 노트북 – 주피터 노트북, 구글 Colab, 아나콘다 등등 (colab의 사양이 나쁘지않고, 브라우저를 통해 사용이 용이하다.) Local Standalone Spark Spark Cluster Manager로 local[n : thread 갯수] 지정 master를 local[n]으로 지정 master는 클러스터 .. 2024. 2. 12.
[Spark] Spark 프로그래밍: DataFrame (1) Spark 데이터 처리 Spark 데이터 구조: RDD, DataFrame, Dataset 프로그램 구조 Spark 데이터 처리 Hive, Presto 보다 더 많은 기능을 제공하기 위해 Spark 사용 외부 데이터(RDB, NoSQL)로부터 주기적인 ETL을 해서 가지고 온다. (Airflow 등..) Spark에서 바로 처리하는 방법도 존재한다. (Spark Streaming) 데이터 병렬처리가 가능하려면? 데이터가 먼저 분산되어야함: (자신만의) 파일시스템이 따로 존재하지 않아서, 분산환경 시스템을 가져야함 하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록 (128MB) (128MB가 너무 크거나 작으면) hdfs-site.xml에 있는 dfs.block.size 프로퍼티로 결정한다. Spa.. 2024. 2. 11.
[Spark] 빅데이터 처리와 Spark 소개(2) 맵 리듀스 프로그래밍 소개 스파크 소개 스파크 데이터 시스템 사용 예들 스파크 실행 옵션 Summary 맵 리듀스 프로그래밍 소개 데이터 셋은 Key, Value의 집합이며 변경 불가(immutable) 데이터 조작은 map과 reduce 두 개의 오퍼레이션으로만 가능 이 두 오퍼레이션은 항상 하나의 쌍으로 연속으로 실행됨 이 두 오퍼레이션의 코드를 개발자가 채워야함 맵리듀스 시스템이 Map의 결과를 Reduce단으로 모아줌 이 단계를 보통 셔플링이라 부르며 네트워크단을 통한 데이터 이동이 생김 스파크도 비슷한 로직으로 구성된다. 맵리듀스 프로그래밍의 핵심: 맵과 리듀스 ❖ Map: (k, v) -> [(k', v')*] 입력은 시스템에 의해 주어지며 입력으로 지정된 HDFS 파일에서 넘어옴 키,밸류 .. 2024. 2. 10.
[Spark] 빅데이터 처리와 Spark 소개(1) 빅데이터 정의 빅데이터 처리가 갖는 특징 하둡의 등장과 소개 Yarn 빅데이터 정의 서버 한대로 처리할 수 없는 규모의 데이터 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 기존의 데이터베이스는 분산환경을 염두에 두지 않고 Scale-up의 접근방식을 가져감 Scale-out의 접근은 Scalable 하다고 이야기 할 수 있다. 웹 검색엔진 개발은 진정한 대용량 데이터 처리 요즘은 웹 자체가 NLP 거대모델 개발의 훈련 데이터로 사용되고 있음 구글이 빅데이터 기술의 발전에 지대한 공헌 빅데이터 처리가 갖는 특징 먼저 큰 데이터를 손실없이 보관할 방법이 필요: 스토리지 처리 시간이 오래 걸림: 병렬처리 (이런 데이터들은 비구조화된 데이터일 가능성이 높음: SQL만으로는 부족하다.) 결국 다수의 컴퓨터.. 2024. 2. 9.
[NestJS] nestJS 소켓통신 (part2. 채널마다 fetchSockets를 통한 메세지 보내주기) 0. 배경 1. 해결방법 0. 배경 서로 구분되는 채널에다가 메세지를 보내줄 수 있도록 구현이 필요했었다. 처음에는 socket.io에서 지원하는 room 을 통해 채널id 내부에있는 소켓들에게 메세지를 보내주는 식으로 고안했는데.. 하나의 소켓이 다른 채널(룸) 으로 참여할 때 기존의 룸에서 메세지를 보내도 다른 채널에서 메세지가 보이는(!) 문제가 발생했다. 그래서 아래와 같이 다른 채널에서 메세지를 보낼 때 구분하기 위해 channelId 와 메세지 내용을 객체로 던져주는 방식을 생각했다. const eventMessageEmitDto = { nickname: user.nickname, message, channelId, }; 이러한 과정중에 room으로 들어가기 위해 소켓을 가지고 와야하는 과정이.. 2024. 2. 8.
[NestJS] nestJS 소켓통신 (part1. 기본설정) 0. 웹소켓의 특징, 한계 1. Socket.io? 2. Lifecycle hooks 3. Postman으로 연결 테스트 웹소켓의 특징 양방향 송수신 가능(Full duplex) 데이터 송수신을 동시에 처리할 수 있는 통신방법 클라이언트와 서버가 서로 원할 때 데이터를 주고 받을 수 있음 ws 프로토콜을 사용하면 웹소켓 포트에 접속해 있는 모든 클라이언트에게 이벤트 방식으로 응답함 통상적인 http 통신은 단방향 통신임 실시간 네트워킹 가능(Real-time Networking) 채팅, 주식, 비디오 등 웹 환경에서 연속된 데이터를 빠르게 노출함 여러 단말기에서 빠르게 데이터 교환할 수 있음 웹소켓의 한계 HTML5에 최적화 된 프로토콜이기 때문에 HTML5 이전의 기술로 구현된 서비스에서는 동작하지 않.. 2024. 2. 8.
반응형